PHP |检查一个数字是否为素数

给定一个数字,我们需要检查它在PHP中是否为素数。讨论了素数检验的一般方法 在这里 .在本文中,我们将学习如何在PHP中检查一个数字是否为素数。

null

例如:

Input : 21Output : Not PrimeInput : 31Output : Prime 

简单方法: 一个简单的解决方案是迭代从2到n/2的所有数字,并对每个数字检查它是否除以n。如果我们找到任何除以的数字,我们将返回0(false),否则我们将返回1(true)。

下面是这种方法在PHP中的实现:

PHP

<?php
// PHP code to check whether a number is prime or Not
// function to check the number is Prime or Not
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"
?>


输出:

Prime

时间复杂度:O(n)

有效方法: 通过观察,我们可以优化上述方法,而不是检查till n,我们可以检查till sqrt(n),因为n的较大因子必须是已检查的较小因子的倍数。 因此,我们将在[2,sqrt(number)]范围内遍历,以检查该数字是否可被任何数字整除。如果它是可除的,它就不是质数。

下面是这种方法在PHP中的实现:

PHP

<?php
// PHP code to check whether a number is prime or Not
// function to check the number is Prime or Not
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"
?>


输出:

Prime

时间复杂度:O(sqrt(n))

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享