中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中怎么統計1~10000的完數個數

發布時間:2021-08-13 17:27:27 來源:億速云 閱讀:148 作者:Leah 欄目:編程語言

PHP中怎么統計1~10000的完數個數,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

完數 全稱 完全數(Perfect number),如果一個數恰好等于它的因子之和,則這個數就稱為"完數"。(因子是指除了自身以外的約數。)

例如:6=1+2+3,6就是一個完數。

那么如果給出一個數 num(例如6),我們怎么判斷這個數 num 是不是完數?

思路:

1、將數num分解成一個個因子,即找到除了自身以外,所有能整除 num 的數。(這個就需要使用到循環了)。

我們以for循環為例,因為1能整除任何整數,所以設置循環初始條件 i=1;而除數不能是num自身,因此限制條件為 i<num。這樣for循環的框架就粗來了~

$num=6;
for($i=1;$i<$num;$i++){
    if($num%$i==0){//分解因數
        
    }
}

2、找到因子后,需要將這些因子相加,求和。這就需要一個變量$sum來接受計算結果,因為是加法,所以$sum可初始賦值為0。

$num=6;
$sum=0;
for($i=1;$i<$num;$i++){
    if($num%$i==0){//分解因數
        $sum=$sum+$i;  //各因數相加,求和
    }
}

3、判斷 $sum 和 $num 是否相等,如果相等,則$num為完數。

下面給出實現代碼:

<?php
header("Content-type:text/html;charset=utf-8");
$num=6;
$sum=0;
for($i=1;$i<$num;$i++){
    if($num%$i==0){//分解因數
        $sum=$sum+$i;  //各因數相加,求和
    }
}
if($sum==$i){//如果這個數等于本身 則為完數
echo "$i 是完數!";
}
?>

看看輸出結果:

PHP中怎么統計1~10000的完數個數

既然知道了如何判斷一個數是不是完數了,下面增加難度:輸出一個給定范圍(就1~10000好了)的所有完數。

分析:有一個1~10000的范圍,那么我們使用for循環來限定范圍,這樣就在上面代碼的外面在套一層for循環:

<?php
header("Content-type:text/html;charset=utf-8");
$num=6;
for($a=1;$a<=10000;$a++){
	$sum=0;
	for($i=1;$i<$a;$i++){
	    if($a%$i==0){//分解因數
	        $sum=$sum+$i;  //各因數相加,求和
	    }
	}
	if($sum==$i){//如果這個數等于本身 則為完數
	echo "$i 是完數!<br>";
	}
}	
?>

看看輸出結果:

PHP中怎么統計1~10000的完數個數

那如果給定范圍很多,想要知道有多少完數怎么辦?可以在if語句中加一個計數器 $b,每輸出一個完數,$b就自增1。

<?php
header("Content-type:text/html;charset=utf-8");
$num=6;
$b=0;
for($a=1;$a<=10000;$a++){
	$sum=0;
	for($i=1;$i<$a;$i++){
	    if($a%$i==0){//分解因數
	        $sum=$sum+$i;  //各因數相加,求和
	    }
	}
	if($sum==$i){//如果這個數等于本身 則為完數
	echo "$i 是完數!<br>";
	$b++;
	}
}
echo "<br>1~10000范圍內有:$b 個完數。";
?>

看看輸出結果:

PHP中怎么統計1~10000的完數個數

看完上述內容,你們掌握PHP中怎么統計1~10000的完數個數的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

焦作市| 梓潼县| 九江市| 阳西县| 兴文县| 抚州市| SHOW| 即墨市| 皋兰县| 科尔| 桐城市| 济宁市| 宁城县| 确山县| 蓬安县| 河西区| 屯留县| 三明市| 巩义市| 全州县| 郧西县| 溧阳市| 九江市| 乌拉特前旗| 海林市| 肃宁县| 敦煌市| 庄浪县| 徐闻县| 榆社县| 正宁县| 宜宾市| 桃源县| 高邑县| 沈丘县| 晋城| 新宁县| 手游| 金门县| 和平县| 成安县|