<?php // Problem 10 と同様に素数を求める。 // 2を除き、それ以外の素数は全て奇数なので、奇数だけ調べる。 // 循環素数なので、数字の中に 2,4,5,6,8,0 が入っていてはいけない。 // 調査対象は奇数だけなので、2は除外しておく。 $prime = array(3,5,7); $answer_array = array(2,3,5,7); // 調査対象は7 の次の奇数から $num = 7; while($num < 1000000) { $num += 2; $sqrt = sqrt($num); $flag = true; foreach($prime as $v) { if($num % $v == 0) { $flag = false; break; } if($sqrt < $v) { break; } } if($flag) { $prime[] = $num; if(strpos($num,"2") === false and strpos($num,"4") === false and strpos($num,"5") === false and strpos($num,"6") === false and strpos($num,"8") === false and strpos($num,"0") === false) { $flag = false; $tmp = $num; $len = strlen($num); // 数字を回転させる $flag2 = true; do { $tmp = substr($tmp,$len - 1,1).substr($tmp,0,$len - 1); echo $tmp." "; // tmp が素数か否かチェック $sqrt = sqrt($tmp); foreach($prime as $v) { if($tmp % $v == 0) { $flag2 = false; break; } if($sqrt < $v) { break; } } }while($tmp != $num and $flag2); echo "\n"; if($flag2) { $answer_array[] = $num; } } } } $answer = count($answer_array); echo $answer; ?>