编程与数学3 编程找出200以内所有的质数

利用PHP编程,找出1至20(任意整数区间)所有的质数

找出给定范围的所有质数

编程思考

这道题,我用PHP编程,找出了给定范围的所有质数。程序代码部分,只有30多行,如图:


找质数 PHP程序

代码

    <?php
    if($_GET['min']) $min = $_GET['min'];else $min = 1;
    if($_GET['max']) $max = $_GET['max'];else $max = 1;
    echo "找";echo $_GET['min'];if($_GET['min']) echo "~";echo $_GET['max'];echo "质数";echo "<br />";
    echo "(请在网址后面粘贴:?min=1&max=200";echo "<br />";
    echo "其中,1是最小的数,200是最大的数,可以修改数字。)";echo "<br />";
    echo " <hr /> ";
    $arrzhi = array();
    for($i=$min;$i<=$max;$i++){
        $sqri=sqrt($i);
        $temp=array();
        echo $i;echo "的因数有";
        for($j=1;$j<=$sqri ;$j++ ){
            if($i % $j == 0){
                array_push($temp,$j);
                if($j<>$i/$j) array_push($temp,$i/$j);
            }
        }
        if(count($temp) == 2) array_push($arrzhi,$i);
        sort($temp);
        echo count($temp)."个,分别是:";
        for($k=0;$k<count($temp) ; $k++){
            if($k>0 and $k<>count($temp)) echo ",";
            echo $temp[$k];
        }
        echo " <br /> ";
    } 
    echo " <hr /> ";
    echo $_GET['min'];if($_GET['min']) echo "~";echo $_GET['max'];echo "质数有";echo count($arrzhi);echo "个:<br />";
    for($k=0;$k<count($arrzhi) ; $k++){
        if($k>0 and $k<>count($arrzhi)) echo " , ";
        echo $arrzhi[$k];
    }
    echo " <hr /> ";
    ?>
代码解析

我用两个GET变量分别存储整数的范围,从min(最小数)到max(最大数),找给定范围的所有的质数。
这里借鉴了找因数的结果。(怎样找因数?请参阅我的另一篇文章,编程与数学2 编程找出200以内数的所有因数:https://www.jianshu.com/p/f9c283e11375)在找因数的基础上,将只有两个因数的数,存储到质数数组中。然后依次输出所有的质数。

答案

程序运行结果:1~20所有的质数
最小数最大数的设置

改变地址栏中min、max的值。例如,要查找21至50所有的质数,只要将地址中的“?min=1&max=200”,改成“?min=12&max=26”,即可。


21~50所有的质数
相关文章链接

编程与数学1 编程实现对一道加法数学题的答案探究:https://www.jianshu.com/p/f49391b46dd7
编程与数学2 编程找出200以内数的所有因数:https://www.jianshu.com/p/f9c283e11375

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容