isPrimeNumber:2 ~ $num – 1で割れるかどうか
isPrimeNumber2:エラトステネスの篩
(2は内部で1を使用)
・2の方が高速
・めんどーなので型チェックとかはやってない。
isPrimeNumber:2 ~ $num – 1で割れるかどうか
isPrimeNumber2:エラトステネスの篩
(2は内部で1を使用)
・2の方が高速
・めんどーなので型チェックとかはやってない。
<?php/*** 素数判定* (2 ~ $num - 1で割れるかどうか)** @param integer $num 整数* @return boolean 素数か否か*/function isPrimeNumber($num){// 1以下は素数で無いif ($num <= 1) {return FALSE;}$ret = TRUE;for ($ii = 2; $ii < $num; $ii++) {// 割り切れるif ($num % $ii == 0) {$ret = FALSE;break;}}return $ret;}/*** 素数判定* エラトステネスの篩 - Wikipedia* http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83%86%E3%83%8D%E3%82%B9%E3%81%AE%E7%AF%A9** @param integer $num 整数* @return boolean 素数か否か*/function isPrimeNumber2($num){// 1以下は素数で無いif ($num <= 1) {return FALSE;}// 平方根の小数点以下切捨て$max = floor(sqrt($num));$ret = TRUE;for ($ii = 2; $ii <= $max; $ii++) {// 素数の場合if (isPrimeNumber($ii)) {if ($num % $ii == 0) {$ret = FALSE;break;}}}return $ret;}?>