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
?>
($j*$j) <= $i
ReplyDeleteThis bit of performance genius is not original, but was suggested by an old friend in 1998 or so.