The source of the file "../book/selfphp/chap06/gen_prime.php".
------------- SOURCE STARTS ----------------------
<?php
if(isset($_POST["maxNo"])){
$cnt = 0;
$maxNo = $_POST["maxNo"];
foreach(getPrimes() as $prime) {
if ($prime > $maxNo) { die(); }
print $prime. ',';
$cnt++;
if(($cnt % 10)==0){ print "<br>";}
}
}else{
$doc = <<< HEREDOC
<form action="gen_prime.php" method="POST">
l
<input type="text" name="maxNo" size="10" maxlength="10" />
<input type="submit" value="submit" />
</form>
HEREDOC;
echo mb_convert_encoding($doc, "UTF-8", "SJIS");
}
function getPrimes() {
$num = 2;
while(true) {
if (isPrime($num)) { yield $num; }
$num++;
}
}
function isPrime(int $value): bool {
$prime = true;
for ($i = 2; $i <= floor(sqrt($value)); $i++) {
if ($value % $i === 0) {
$prime = false;
break;
}
}
return $prime;
}
-------------- SOURCE ENDS -----------------------