前回の記事「PHPループ学習10:水仙の数を求めてすべての水仙の数を出力する」では、水仙の数を求め、ループを使って水仙の数を求める方法を紹介しました。すべての水仙の数を出力します。メソッド、引き続き PHP ループについて学習し、数値が素数であるかどうかを判断し、1 から 100 までの素数を出力する方法を紹介します。興味のある友達はそれについて学ぶことができます~
まずは知ってみましょう 素数とは何ですか?
素数 (素数) とは、1 とそれ自身以外の他の数では割り切れない自然数を指し、他の数で割り切れる場合はそう呼ばれます。合成数 (規定) 1 は素数でも合成でもない)。
例: 数値 2、3、17、および 19 はすべて素数であり、これらは 1 とそれ自体でしか割ることができません。
では、数値 num (たとえば、17) が与えられた場合、この数値 num が素数であるかどうかをどのように判断するのでしょうか。 ここで、いくつかの方法を紹介します。
方法 1: 最も簡単な方法は、素数の定義に基づいて見つけることです。
考え方:
素数は 1 とそれ自体でしか割り切れません。つまり、2 倍でしか割り切れません。
そこで、ループを使用して、1 より大きく N 以下のすべての自然数を使用して N を除算し、除算された回数を数えます。 2 より大きい場合は素数ではありませんが、2 に等しい場合は素数です。
実装コードを見てみましょう:
<?php header("content-type:text/html;charset=utf-8"); $num=17; $count = 1; for($i = 2; $i <= $num; $i++) { if(($num % $i)== 0) $count ++; } if($count == 2) { echo $num . '就是素数<br/>'; }else{ echo $num . '不是素数<br/>'; } ?>
出力結果:
# # 方法 2:
アイデア: 2 をsqrt (この数値) でそれぞれ割る数値を使用します。均等に割り切れる場合、その数値は ではないことを意味します。素数、それ以外の場合は素数です。
<?php header("content-type:text/html;charset=utf-8"); $num=19; $flag = 1; for($i = 2; $i*$i <= $num; $i++) //能被2 - sqrt(i)整除的数 { if($num % $i == 0) { $flag = 0; break; } } if($flag == 1) { echo $num . '就是素数<br/>'; }else{ echo $num . '不是素数<br/>'; } ?>
範囲 (1 ~ 100 など) を与えてすべての素数を出力するにはどうすればよいですか?
2 つのループを使用しますか? 上記の for ループに基づいて、範囲を制御するために for ループの層を外側に配置するだけです。実装コードを見てみましょう (メソッド 2 のコードを直接使用):<?php header("content-type:text/html;charset=utf-8"); $count = 0; for($k = 2; $k <= 100; $k++){ //从2开始,遍历到100 $flag = 1; for($i = 2; $i*$i <= $k; $i++) {//能被2 - sqrt(i)整除的数 if($k % $i == 0) { $flag = 0; break; } } if($flag == 1) { echo $k . '是素数<br/>'; $count ++; } } echo '<br/>1~100间共有 '.$count." 个素数"; ?>
$count が使用されており、素数が出力されるたびに 1 ずつ増加し、1 から 100 までの素数がいくつあるかを数えることができます。
推奨: PHP 面接の質問の概要 (コレクション)>>
以上がPHP ループ学習 11: 素数を決定する方法、1 から 100 までの素数を出力する方法、およびその数を数える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。