<?php $answer = 0; // 奇数を順番に調べていく。 $i = 3; while(true) { // 素数か否かを調べる $flag = true; if(!check_prime($i)) { $j = 1; // 素数でない場合、2の階乗を引いていき、素数か否かを調べる while($i - $j * $j * 2 > 0) { if(check_prime($i - $j * $j * 2)) { $flag = false; break; } $j++; } } else { $flag = false; } if($flag) { $answer = $i; break; } $i+=2; } echo $answer."\n"; function check_prime($num) { global $answer; $flag = true; if($num % 2 != 0) { // 素数チェック $sqrt = sqrt($num); for($i = 3 ;$i <= $sqrt ; $i+=2) { if($num % $i == 0) { $flag = false; break; } } } else { $flag = false; } return $flag; } ?>