<?php
$prime = array(2);
$i = 3;
$answer = 0;
// まずは100万未満の素数を抽出する。
$tmp = 2;
while($i < 1000000)
{
if(check_prime($i))
{
$tmp += $i;
$prime[] = $i;
}
$i+=2;
}
// 2から順番に足していって、素数になったときの個数を記憶する
$count = count($prime);
$max = 0;
for($i = 0 ; $i < $count ; $i++)
{
$tmp = 0;
for($j = $i ; $j < $count ; $j++)
{
$tmp += $prime[$j];
if(check_prime($tmp) and $max < $j - $i)
{
$max = $j - $i;
$answer = $tmp;
//echo $answer." ".$max."\n";
}
if($tmp > 1000000)
{
break;
}
}
}
echo $answer."\n";
function check_prime($num)
{
$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;
}
?>