PHPで素数判定書いてみた。
<?php /* * 素数判定 * * 素数:1と自分自身以外に約数が存在しない整数 * */ //標準入力 $input = (int)trim(fgets(STDIN)); //素数判定 function prime_judge($number){ if($number === 2 && $number === 3){ return "素数です"; } $flag = 0; /*2から$number-1の間に$numberの約数があるかどうか確認 約数があれば$numberは素数ではない。 ただここでは高速化のため、2からfloor($number/2)の間の に約数があるかどうかだけチェックしてる*/ foreach(range(2, floor($number / 2)) as $a){ $mod = $number % $a; //約数であれば$mod==0となっているはずである if($mod === 0){ $flag = 1; break; } } /*ここまで約数かどうか調べて一つもなければ $flag == 0となっています。*/ if($flag === 0){ return "素数です"; }else if($flag === 1){ return "素数ではない"; } } echo prime_judge($input), PHP_EOL;
これよりこっちのコードの方がいいというコードがあれば是非教えてください!
もっと勉強したいので。。
ではおやすみなさい。