本篇内容介绍了“PHP怎么判断素数并打印1~100的素数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
素数(质数)是指除了1和它本身之外再不能被其他数整除的自然数;如果能被其他数整除则称为合数(规定1既不是质数也不是合数)。
例如:数字2、3、17、19都是素数,它们只能被1和本身整除。
那么如果给出一个数 num(例如17),我们怎么判断这个数 num 是不是素数呢?下面给大家介绍几种方法:
方法1:最简单的方法是根据素数的定义来求
思路:
下面来看看实现代码:
<?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的素数”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注天达云网站,小编将为大家输出更多高质量的实用文章!