我使用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 ";
}
}
和结果:1 2 3 5 7 11 13 17 19 23 25 29 31 35 37 41 43 47 49 53
为什么数字25
,35
和49
仍会出现。?
或者可能是这样的代码吗?
$number = 53;
for( $i = 2; $i <= $number; $i++ )
{
for( $k = 2; $k < $i; $k++ )
{
if( $i % $k == 0 )
{
break;
}
}
if( $k == $i )
echo $i." ";
}
但我希望在结果中包含数字
答案 0 :(得分:0)
25%2 = 1
25%3 = 1
因此,它会显示数字。
您的功能不显示素数;相反,它显示的数字不能被2或3整除。
答案 1 :(得分:0)
您可以使用这段代码。
<?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>';
}
?>
答案 2 :(得分:0)
对不起,我知道这有点晚了,但是这个函数可以帮助你完成这个......
<?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++;
}
?>