RosettaCodeData/Task/Ascending-primes/PHP/ascending-primes.php
2023-07-01 13:44:08 -04:00

36 lines
588 B
PHP

<?php
function isPrime($n)
{
if ($n == 2)
return true;
if ($n == 1 || $n % 2 == 0)
return false;
$root = intval(sqrt($n));
for ($k = 3; $k <= $root; $k += 2)
if ($n % $k == 0)
return false;
return true;
}
$queue = [];
$primes = [];
$begin = 0;
$end = 0;
for ($k = 1; $k <= 9; $k++)
$queue[$end++] = $k;
while ($begin < $end)
{
$n = $queue[$begin++];
if (isPrime($n))
$primes[] = $n;
for ($k = $n % 10 + 1; $k <= 9; $k++)
$queue[$end++] = $n * 10 + $k;
}
foreach($primes as $p)
echo "$p ";