为了账号安全,请及时绑定邮箱和手机立即绑定

在循环中查找素数的公式

在循环中查找素数的公式

胡说叔叔 2019-10-21 13:12:49
我需要使用for循环或while循环查找素数我写了这个,但这是错误的<?php$i = 1;while($i<5){    for($j=1; $j<=$i; $j++)    {        if ($j != 1 && $j != $i)        {            echo $i . "/" . $j . "=" . $i%$j . "<br />";            if ($i%$j != 0)            {                echo $i . "<br />";            }        }    }    echo "<br />";    $i += 1;}?>有没有一种方法可以将数字与数组相除以找到余数?
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

这是我找到一段时间检查底漆的单线纸。它使用计数标记(一元数学)确定:


function is_prime_via_preg_expanded($number) {

    return !preg_match('/^1?$|^(11+?)\1+$/x', str_repeat('1', $number));

}

依次检查所有数字是否有素数:


$i=2; // start here (2 is the first prime)

while (1) { // neverending loop

    if (is_prime_via_preg_expanded($i)) echo $i." <br />\n";

    $i++;

}

要仅检查数字范围内的质数,如提供的示例中所示:


$start = 2; // start here (2 is the first prime)

$end = 100;


$i=$start;

while ($i<=$end) {

    if (is_prime_via_preg_expanded($i)) echo $i." <br />\n";

    $i++;

}


查看完整回答
反对 回复 2019-10-21
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

这是一个基本的实现:


function prima($n){


  for($i=1;$i<=$n;$i++){  //numbers to be checked as prime


          $counter = 0; 

          for($j=1;$j<=$i;$j++){ //all divisible factors



                if($i % $j==0){ 


                      $counter++;

                }

          }


        //prime requires 2 rules ( divisible by 1 and divisible by itself)

        if($counter==2){


               print $i." is Prime <br/>";

        }

    }


prima(20);  //find prime numbers from 1-20

这将输出


 2 is Prime 

 3 is Prime 

 5 is Prime 

 7 is Prime 

 11 is Prime 

 13 is Prime 

 17 is Prime 

 19 is Prime 


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 564 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信