PHP循环学习十一:怎么判断素数并打印1~100的素数、统计其数目
时间:2021-09-03
来源:互联网
今天PHP爱好者给大家带来PHP怎么判断素数并打印1~100的素数、统计其数目的教程,在之前的文章《PHP循环学习十:判定水仙花数,打印全部水仙花数》中,我们给大家介绍一下判断水仙花数并利用循环输出所有水仙花数的方法,下面继续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视频教程
以上就是PHP循环学习十一:怎么判断素数并打印1~100的素数、统计其数目的详细内容,更多请关注php爱好者其它相关文章!
-
炉石传说绿野大作战模式攻略_炉石传说绿野大作战有哪些强力卡组推荐 时间:2025-05-08
-
原神爱可菲培养指南_原神爱可菲要如何进行培养 时间:2025-05-08
-
原神香韵奏者抽取建议指南_原神香韵奏者抽取建议攻略 时间:2025-05-08
-
dnf手游驱魔师毕业装备搭配推荐_dnf手游驱魔师毕业装备搭配指南 时间:2025-05-08
-
英雄没有闪秘法师电离电光束流搭配指南_英雄没有闪秘法师电离电光束流搭配推荐 时间:2025-05-08
-
光与影33号远征队繁叶结如何获取_光与影33号远征队繁叶结获取指南 时间:2025-05-08
今日更新
-
windows服务器apache、php、postgresql的环境安装
阅读:18
-
PHP数组学习之二维数组怎么进行排序(2种方法)
阅读:18
-
手把手教你使用ps给多云的图片添加虫洞效果(分享)
阅读:18
-
PHP如何按要求将部分字符转换成大写
阅读:18
-
浅谈JS阻塞方式怎么实现异步任务队列?
阅读:18
-
PHP函数运用之检查一个值是不是有限值、无限值或非数值
阅读:18
-
一文了解vue中watcher数据双向绑定原理(附代码)
阅读:18
-
一招教你使用ps给字体添加镶嵌效果(总结)
阅读:18
-
一文详解thinkphp控制器的定义和使用
阅读:18
-
手把手教你怎么利用node.js来批量重命名文件/目录(实战)
阅读:18