检查一个数字是否为素数
给定一个数字,我们需要检查它是否是PHP中的素数。这里讨论了基本检查的一般方法。在本文中,我们将学习如何在PHP中检查一个数字是否是质数。
如果浏览不顺畅请到原文章出处:https://www.sky8g.com/technology/615/
请注意可能会提示风险,这是优快云网站设置的问题,如果文章内的链接不是他们的网址,都会对用户提示有风险,请点击继续访问,本网站全部文章为免费技术分享,请放心访问,无需担心。
请点击此处查看完整文章:https://www.sky8g.com/technology/615/
此篇文章是由SKY8G网作者原创,禁止抄袭。
检查一个数字是否为素数
给定一个数字,我们需要检查它是否是PHP中的素数。这里讨论了基本检查的一般方法。在本文中,我们将学习如何在PHP中检查一个数字是否是质数。
例子
1 2 3 4 5 | Input : 21 Output : Not Prime
Input : 31 Output : Prime |
简易方法
一个简单的解决方案是遍历所有的数字,从2到n/2,对每个数字检查它是否除以n。
下面是这种方法在PHP中的实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php // PHP代码检查一个数字是否是素数 // 函数检查数字是否为素数 function primeCheck($number){ if ($number == 1) return 0; for ($i = 2; $i <= $number/2; $i++){ if ($number % $i == 0) return 0; } return 1; }
// Driver Code $number = 31; $flag = primeCheck($number); if ($flag == 1) echo "Prime"; else echo "Not Prime" ?> |
输出
1 | Prime |
有效的方法
我们可以通过观察来优化上述方法,而不是检查到n,我们可以检查到根号n,因为n的大因数必须是已经检查过的小因数的倍数。
因此,我们将遍历范围[2,sqrt(number)],以检查该数字是否可被任何数字整除。如果它能被整除它不是质数。
下面是这种方法在PHP中的实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php // PHP代码检查一个数字是否是素数 // 函数检查数字是否为素数 function primeCheck($number){ if ($number == 1) return 0; for ($i = 2; $i <= sqrt($number); $i++){ if ($number % $i == 0) return 0; } return 1; }
// Driver Code $number = 31; $flag = primeCheck($number); if ($flag == 1) echo "Prime"; else echo "Not Prime" ?> |
输出
1 | Prime |
如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!
本篇文章是由sky8g网站原创文章版权声明转载请注明: