Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php生成一系列素数_Php_Numbers_Primes - Fatal编程技术网

使用php生成一系列素数

使用php生成一系列素数,php,numbers,primes,Php,Numbers,Primes,我编写这段代码是为了使用php创建一系列素数 $number = 53; for ($i=0; $i<=$number; $i++) { if ( $i == 2 ) { echo "$i "; } else if ( $i == 3 ) { echo "$i "; } else if ($i % 2 != 0 && $i % 3 != 0) { echo "$

我编写这段代码是为了使用php创建一系列素数

$number = 53;

for ($i=0; $i<=$number; $i++)
{
    if ( $i == 2 )
    {
        echo "$i ";
    }
    else if ( $i == 3 )
    {
        echo "$i ";
    }
    else if ($i % 2 != 0 && $i % 3 != 0)
    {
        echo "$i ";
    }
}
25%2=1

25%3=1

因此,它会显示数字


你的函数不显示素数;相反,它显示的数字不能被2或3整除。

您可以使用这段代码

<?php
$number = 983;
$i = 0;
while($i <= $number)
{
    $prime = true;
    if($i != 0 && $i != 1 && $i != 2)
    {
        echo 'Number: ' . $i;
        // echo $i .'</br>';
        $x = range(2,$i-1);

        foreach($x as $try => $value)
        {
            if(($i % $value) === 0)
            {
                $prime = false;
            }
        }

        if($prime == true)
        {
            echo ' is a prime';
        }
    }
    $i++;
    echo '</br>';
}
?>

抱歉,我知道这有点晚了,但这里有一个函数可以帮助您准确地完成此操作

<?php 
 //Prime Function
 function fn_prime($number) {
    $i = 2; $result = TRUE;
    while($i < $number) {
        if(!($number%$i)) {
            $result = FALSE;
        }
        $i++;
    }
    return $result;
 }

//Declare integer variable...
$k = 0;

//Start Loop up to any number of your choice for e.g. 200
while($k < 200) {
    if(fn_prime($k)) {
        echo "$k is a prime number<br/>";
    } else {
        echo "$k is not a prime number!<br/>";
    }
    $k++;
}

?>

1不是质数,因为25、35和49都不能被2或3整除。黑洞的回答是正确的。使用它可能很有趣,但如果您只需要一个工作函数,请在php>=5.6上使用gmp_nexttime。另请参见感谢杰伊·布兰查德的编辑。谢谢@twicejr提供的信息