<?php // 4桁の素数を考える。1487,4817,8147 は例として挙がっているので、除外する。 $prime = array(); for($i = 1001 ; $i < 10000 ; $i += 2) { if($i != 1487 and $i != 4817 and $i != 8147 and check_prime($i)) { $prime[] = $i; } } $max = max($prime); $flag = false; foreach($prime as $k => $v) { $i = 1; while($k - $i >= 0 and $v + $v - $prime[$k - $i] <= $max) { $tmp = array_search($v + $v - $prime[$k - $i],$prime); if($tmp !== false) { $array = array(); for($j = 0 ; $j < 4 ; $j++) { @$array[0][substr($prime[$tmp],$j,1)]++; @$array[1][substr($prime[$k - $i],$j,1)]++; @$array[2][substr($v,$j,1)]++; } $flag2 = true; foreach($array[0] as $k2 => $v2) { if(@$array[1][$k2] != $v2 or @$array[2][$k2] != $v2) { $flag2 = false; break; } } if($flag2) { $flag = true; break; } } $i++; } if($flag) { break; } } echo $prime[$k - $i].$v.$prime[$tmp]."\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; } ?>