素数达到一定数量

时间:2014-02-17 14:14:41

标签: php primes

这是问题所在,我需要查找到一定数量的素数,这是我的代码:

$a = 56;

for($i = 2; $i<=$a; $i++)
{
    if($i == 2)
    {
        echo "2</br>";
    }

    if($i == 3)
    {
        echo "3</br>";
    }

    if($i == 5)
    {
        echo "5</br>";
    }

    if($i == 7)
    {
        echo "7</br>";
    }

    for($j =3; $j <= ceil($i/2); $j = $j + 2)
    {
        if($i % 2 == 0)
        {
            break;
        }
        if($i % 3 == 0)
        {
            break;
        }
        if($i % 5 == 0)
        {
            break;
        }
        if($i % 7 == 0)
        {
            break;
        }
        else
        {
            echo "$i</br>";
            break;
        }
    }
}

它工作正常,但有点像蛮力算法,不是吗?有没有其他方法可以做到这一点? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

假设x是极限(你想要素数)..

for($n=2;$n<=$x;$n++)
{
  $i=2; 
  while($i<=$n-1) 
  {
    if($n % $i == 0)
    break;
    $i++;
  }
  if($i==$num) 
  echo $n;   // $n is the prime number...
}