<?php
// 普通に全数チェックを行うと、すごく時間がかかる。
// とりあえず、合計33427 という数が見つかったので、最大素数が33427 までの間でもういっかい。
$prime = array(3=>array(0=>0));
$i = 7;
$flag = false;
$answer = array();
$max = 0;
while(true)
{
if(check_prime($i))
{
$prime[$i] = array();
foreach($prime as $k => $v)
{
$tmp = $i.$k;
$tmp2 = $k.$i;
if(check_prime($tmp) and check_prime($tmp2))
{
$prime[$i][] = $k;
}
}
$tmp3 = array();
if(count(@$prime[$i]) > 0)
{
foreach($prime[$i] as $k => $v)
{
$answer = array($i);
$max = 0;
check_len($v,$tmp3,2);
if($max > 4)
{
$flag = true;
break;
}
$tmp3[] = $v;
}
}
if($flag)
{
break;
}
}
$i+=2;
}
echo array_sum($answer)."\n";
function check_len($key , $array , $num)
{
global $prime;
global $answer;
global $max;
$answer[$num] = $key;
if($max < $num)
{
$max = $num;
}
$tmp = array_intersect($prime[$key] , $array);
if(count($tmp) > 0)
{
$tmp3 = array();
foreach($tmp as $v)
{
if($max < 5)
{
check_len($v,$tmp3,$num+1);
$tmp3[] = $v;
}
}
}
}
function check_prime($num)
{
$flag = true;
// 素数チェック
$sqrt = sqrt($num);
for($i = 3 ;$i <= $sqrt ; $i+=2)
{
if($num % $i == 0)
{
$flag = false;
break;
}
}
return $flag;
}
?>