Shortest Code For Generating Prime Numbers

<?php


for ($i = 1; $i < 1000; $i++)
{
    $print = TRUE;
  
    // Optimized till square roots
    for ($j = 2; ($j*$j) <= $i; $j++)
    {
        $print = FALSE;

        if ($i % $j == 0)
            break;
      
        $print = TRUE;
    }

    if ($print)
        print $i.',';
}


?>


<?

// Here's a little trick I learnt from a friend almost 30 years ago

// Counting Prime numbers

$StartTime = time();
$PrimeCount=0;

for ($i=1; $i<200000; $i++)
{
$IsPrime = true;

for ($j=2; ($j*$j)<=$i; $j++)
{

if (($i % $j) == 0)
$IsPrime=false;

}

if ($IsPrime)
$PrimeCount++;

}

$TimeTaken = (time() - $StartTime);

echo 'Counted '.$PrimeCount.' prime numbers in '.$TimeTaken.' seconds.'.PHP_EOL;

// Gates was right
// Zuck was right
// Jack Reeves was right

?>

Comments

  1. ($j*$j) <= $i

    This bit of performance genius is not original, but was suggested by an old friend in 1998 or so.

    ReplyDelete

Post a Comment