php编写素数,php 素数

这篇博客介绍了三种PHP编程判断素数的方法。方法一是通过遍历1到该数之间所有数进行除法判断;方法二是利用开平方根优化,只检查到数的平方根;方法三是使用数组存储已知素数,遍历并判断新数是否能被已知素数整除。这些方法对于理解和优化素数判断算法有所帮助。
摘要由CSDN通过智能技术生成

我在这里列举几种方法,仅供参考,学习php编程的思路。

方法一:判断素数的办法是用1到某个数之间的所有数去除这个数,如果能够整除这个数的数超过2个那么这个数就不是素数,反之如果能够整除这个数的数只有1个或者2个,那么他就是素数.

$n = 1000;

echo $n . "以内的素数:";

for ($m = 2; $m <= $n; $m++) { //第一层循环,循环1-$n直接的所有数

$k = 0; //计数器初始化

for ($i = 1; $i <= $m; $i++) { //第二层循环,循环1-$m直接的所有数,$m属于区间【1,$n】

if ($m % $i == 0) { //取模运算,如果余数为0,K自增1

$k++;

}

}

if ($k == 2) { //如果k的值等于1或者2,那么是素数,将其输出

echo $m . "-";

}

}

?>

方法二:判断素数的办法是除了1和本身外,有其它能够整除这个数的数,那么这个数就不是素数

$isPrime = true;

$n = 1000;

echo $n . "以内的素数:";

for ($i = 2; $i < $n; $i++) { //第一层循环,循环1-$n直接的所有数

for ($j = 2; $j <= intval(sqrt($i)); $j++) { //第二层循环,$i开平方,这里的intval是10进制取整数的意思

if ($i % $j == 0) { //取模运算,如果余数为0,输出$isPrime=false,并跳出第二层循环

$isPrime = false;

break;

}

$isPrime = true;

}

if ($isPrime) { //如果$isPrime=true,将$i输出

echo $i . " ";

}

}

?>

方法三:这个方法其实和方法二差不多,思路是同一个,实现的代码不同。

$ss = 2;

//声明变量$ss,赋初值为最小的素数

$max = 1000;

//声明变量$max,赋值为最大的范围

$arr = array();

//声明一个数组$arr

echo $max . '以内的素数为:';

while ($ss < $max) {

//判断变量是否在允许的范围内

$boo = false;

//声明一个布尔变量$boo,初值为false

foreach ($arr as $value) {

//使用foreach语句遍历$arr数组

if ($ss % $value == 0) {

//如果变量$ss 能够被数组元素整除

$boo = true;

//将布尔变量赋值为true

break;

}

}

if (!$boo) {

//判断变量$boo值

echo $ss . ' ';

//如果$boo为假,则说明当前变量$ss为素数,输出素数

$arr[count($arr)] = $ss;

}

$ss++;

}

?>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值