前回の記事「PHPループ学習7:9*9の早計算表を印刷する2つの方法」では、forループとwhileループを使って99の九九を印刷する方法を紹介しました。引き続き、PHP ループを理解し、与えられた数値が完全な数であるかどうかを判断する方法を紹介します。興味のある友達はそれについて学ぶことができます~
まずは理解しましょう完全数とは何ですか?
##完全数 フルネーム完全数、数値が因数の合計と正確に等しい場合、その数値は「完全数」数値と呼ばれます」。 (因数はそれ自体以外の約数を指します。)
例: 6=1 2 3、6 は完全数です。では、数値 num (たとえば、6) が与えられた場合、数値 num が完全であるかどうかをどのように判断するのでしょうか?
アイデア:i=1; に設定され、除数を num そのものにすることはできないため、制限条件はi<num><pre class="brush:php;toolbar:false">$num=6;
for($i=1;$i<$num;$i++){
if($num%$i==0){//分解因数
}
}</pre></num>
$num=6; $sum=0; for($i=1;$i<$num;$i++){ if($num%$i==0){//分解因数 $sum=$sum+$i; //各因数相加,求和 } }3. $sum と $num が等しいかどうかを確認します。等しい場合、$num は完全な数値です。 実装コードは以下のとおりです:
指定された範囲 (1 ~ 10000 だけ) 内の完全な数値をすべて出力します。
分析: 1 ~ 10000 の範囲があるため、for ループを使用して範囲を制限し、for ループが上記のコードの外側に配置されます:<?php header("Content-type:text/html;charset=utf-8"); 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>"; } } ?>出力を見てください: #指定された範囲が多数あり、完全な数値がいくつあるかを知りたい場合はどうすればよいでしょうか。 if 文にカウンター $b を追加すると、完全な数値が出力されるたびに $b が 1 ずつ増加します。
<?php header("Content-type:text/html;charset=utf-8"); $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 个完数。"; ?>出力を見てください: OK、完了です。 1 から 10,000 までのすべての完全数が出力され、完全数の数がカウントされます。 わかりました。これですべてです。他に知りたいことがある場合は、これをクリックしてください。 → →
推奨: PHP 面接の質問の要約 (コレクション)>>
以上がPHP ループ学習 8: 1 から 10,000 までの完全数の数を数え、すべての完全数を出力するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。