如何找到质数
How to Find Prime Number
如何找到素数?
质数是大于一的数,只能被自己和一整除。判断一个数是否为质数的一种方法如下:
->如果数字 < 2,则 return False
->如果数字是2,那么return True
-> 对于 i 的每个值,其中 i >=2 且 i < 数字:
如果数字可以被 i 整除,则 return False
->return 正确
我当前的代码:
def is_prime(number):
if number == 2:
return True
elif number < 2:
return False
else:
for i in range(2, number):
if number % i == 0:
return False
else:
return True
def main():
print(is_prmie(1))
print(is_prmie(4))
print(is_prmie(7))
一些语法问题我不知道如何解决。
有人可以帮忙吗?
谢谢TA!
您需要调用 main()
并正确写入 is_prime()
。
def is_prime(number):
if number == 2:
return True
elif number < 2:
return False
else:
for i in range(2, number):
if number % i == 0:
return False
else:
return True
def main():
print(is_prime(1))
print(is_prime(4))
print(is_prime(7))
main()
方法调用时 is_prime 的拼写错误。另外,您最后还没有调用 main 方法。
小改进:
for i in range(2, number):
这一行可以如下所示,因为我们不需要检查数字的一半后的整除性:
for i in range(2, (number/2)):
例如为了检查 24 是否为质数,我们最多只需要检查 12,因为它永远不会被大于 12 的数整除。
我建议如下:
from math import sqrt
def is_prime(x):
if x < 2:
return False
if x % 2 == 0:
return x == 2
i = 3
while i <= sqrt(x):
if x % i == 0:
return False
i += 2
return True
注意事项:
- 唯一的偶素数是 2。循环仅限于奇数。
- 只需要检验等于并包括平方根的因子。因为如果 x = y * z 且 y ≥ sqrt(x) 则 z ≤ sqrt(x)
- 循环中只有一个 return 语句。您可以在非素数时提前退出,但您必须完成循环以确保数字为素数。
<?php
// PHP code to check wether a number is prime or Not
// function to check the number is Prime or Not
function primeCheck($number){
if ($number == 1 || $number == 2 || $number % 2 !== 0) {
echo "Prime";
}
else if ($number % 2 == 0)
{
echo "Not Prime";
}
}
echo primeCheck(5);
如何找到素数? 质数是大于一的数,只能被自己和一整除。判断一个数是否为质数的一种方法如下:
->如果数字 < 2,则 return False
->如果数字是2,那么return True -> 对于 i 的每个值,其中 i >=2 且 i < 数字: 如果数字可以被 i 整除,则 return False ->return 正确
我当前的代码:
def is_prime(number):
if number == 2:
return True
elif number < 2:
return False
else:
for i in range(2, number):
if number % i == 0:
return False
else:
return True
def main():
print(is_prmie(1))
print(is_prmie(4))
print(is_prmie(7))
一些语法问题我不知道如何解决。 有人可以帮忙吗? 谢谢TA!
您需要调用 main()
并正确写入 is_prime()
。
def is_prime(number):
if number == 2:
return True
elif number < 2:
return False
else:
for i in range(2, number):
if number % i == 0:
return False
else:
return True
def main():
print(is_prime(1))
print(is_prime(4))
print(is_prime(7))
main()
方法调用时 is_prime 的拼写错误。另外,您最后还没有调用 main 方法。
小改进:
for i in range(2, number):
这一行可以如下所示,因为我们不需要检查数字的一半后的整除性:
for i in range(2, (number/2)):
例如为了检查 24 是否为质数,我们最多只需要检查 12,因为它永远不会被大于 12 的数整除。
我建议如下:
from math import sqrt
def is_prime(x):
if x < 2:
return False
if x % 2 == 0:
return x == 2
i = 3
while i <= sqrt(x):
if x % i == 0:
return False
i += 2
return True
注意事项:
- 唯一的偶素数是 2。循环仅限于奇数。
- 只需要检验等于并包括平方根的因子。因为如果 x = y * z 且 y ≥ sqrt(x) 则 z ≤ sqrt(x)
- 循环中只有一个 return 语句。您可以在非素数时提前退出,但您必须完成循环以确保数字为素数。
<?php
// PHP code to check wether a number is prime or Not
// function to check the number is Prime or Not
function primeCheck($number){
if ($number == 1 || $number == 2 || $number % 2 !== 0) {
echo "Prime";
}
else if ($number % 2 == 0)
{
echo "Not Prime";
}
}
echo primeCheck(5);