您好,登录后才能下订单哦!
本篇内容介绍了“PHP怎么判断素数并打印1~100的素数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
素数(质数)是指除了1和它本身之外再不能被其他数整除的自然数;如果能被其他数整除则称为合数(规定1既不是质数也不是合数)。
例如:数字2、3、17、19都是素数,它们只能被1和本身整除。
那么如果给出一个数 num(例如17),我们怎么判断这个数 num 是不是素数呢?下面给大家介绍几种方法:
方法1:最简单的方法是根据素数的定义来求
思路:
素数只能被1和本身整除,即只能被整除2次。
因此我们利用循环,使用大于1小于等于N的各个自然数都去除一下N,统计被整除的次数,如果次数大于2则不是素数;如果等于2则则是素数。
下面来看看实现代码:
<?php header("content-type:text/html;charset=utf-8"); $num=17; $count = 1; for($i = 2; $i <= $num; $i++) { if(($num % $i)== 0) $count ++; } if($count == 2) { echo $num . '就是素数<br/>'; }else{ echo $num . '不是素数<br/>'; } ?>
输出结果:
方法2:
思路:用一个数分别去除2到sqrt(这个数)
,如果能被整除,则表明此数不是素数,反之是素数。
下面来看看实现代码:
<?php header("content-type:text/html;charset=utf-8"); $num=19; $flag = 1; for($i = 2; $i*$i <= $num; $i++) //能被2 - sqrt(i)整除的数 { if($num % $i == 0) { $flag = 0; break; } } if($flag == 1) { echo $num . '就是素数<br/>'; }else{ echo $num . '不是素数<br/>'; } ?>
输出结果:
好了知道怎么给定一个数来判断是不是素数了,下面加大难度:怎么给定一个范围(例如1~100),输出全部素数呢?
是不是要使用两个循环,在上面for循环的基础上,在外面套一层for循环来控制范围即可。我们来看看实现代码(直接使用方法2的代码):
<?php header("content-type:text/html;charset=utf-8"); $count = 0; for($k = 2; $k <= 100; $k++){ //从2开始,遍历到100 $flag = 1; for($i = 2; $i*$i <= $k; $i++) {//能被2 - sqrt(i)整除的数 if($k % $i == 0) { $flag = 0; break; } } if($flag == 1) { echo $k . '是素数<br/>'; $count ++; } } echo '<br/>1~100间共有 '.$count." 个素数"; ?>
输出结果:
可以看出,我们在内层for循环的循环体中,使用一个计数器$count
,每输出一个素数后,自增1,这样就可以统计出1~100内有多少素数了。
“PHP怎么判断素数并打印1~100的素数”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。