python 检查质数的代码认为 (55,25) 是质数
python code to check prime number consider (55,25 ) is prime number
snap shot for code
python 程序检查数字列表中的素数,将 55 和 25 视为素数,但实际上不是素数,因为 55/5=11 并且提示为零
那么代码中有什么问题
def check_prime(n):
for i in range(2,n,1):
if(n%i)==0:
return 1
else :
return 0
numbers=[51,52,53,54,55,13,407,508,11,17,60,12,19,25,30,]
for j in numbers:
if check_prime(j)==1:
print("the {} is not prime".format(j))
else:
print("th {} is prime".format(j))
因为,你把 return 放在你的函数中,因此你的函数只在其他函数中做第一次评估 return 如果一个数字是奇数或永远,因为只评估当 i = 2 时,你的函数必须是。
def check_prime(n):
for i in range(2,n):
if(n%i)==0:return False
return True
你在 check_prime
函数中有一个逻辑错误,试试这个:
def check_prime(n):
for i in range(2, n, 1):
if (n % i) == 0:
return True
return False
numbers = [51, 52, 53, 54, 55, 13, 407, 508, 11, 17, 60, 12, 19, 25, 30, ]
for j in numbers:
if check_prime(j):
print("the {} is not prime".format(j))
else:
print("th {} is prime".format(j))
您的函数在单次迭代后 returns,取消了 for 循环的效果。你想 return 当发现它不是素数时,但你需要继续遍历所有数字才能说素数是素数。此外,翻转 return 值以使其更直观。
def check_prime(n):
for i in range(2,n,1):
if(n%i)==0:
return 0
return 1
您需要使循环中的 return 成为条件。在这种情况下,它会在一个循环后退出,这就是为什么你会看到它 return 误报。
snap shot for code python 程序检查数字列表中的素数,将 55 和 25 视为素数,但实际上不是素数,因为 55/5=11 并且提示为零 那么代码中有什么问题
def check_prime(n):
for i in range(2,n,1):
if(n%i)==0:
return 1
else :
return 0
numbers=[51,52,53,54,55,13,407,508,11,17,60,12,19,25,30,]
for j in numbers:
if check_prime(j)==1:
print("the {} is not prime".format(j))
else:
print("th {} is prime".format(j))
因为,你把 return 放在你的函数中,因此你的函数只在其他函数中做第一次评估 return 如果一个数字是奇数或永远,因为只评估当 i = 2 时,你的函数必须是。
def check_prime(n):
for i in range(2,n):
if(n%i)==0:return False
return True
你在 check_prime
函数中有一个逻辑错误,试试这个:
def check_prime(n):
for i in range(2, n, 1):
if (n % i) == 0:
return True
return False
numbers = [51, 52, 53, 54, 55, 13, 407, 508, 11, 17, 60, 12, 19, 25, 30, ]
for j in numbers:
if check_prime(j):
print("the {} is not prime".format(j))
else:
print("th {} is prime".format(j))
您的函数在单次迭代后 returns,取消了 for 循环的效果。你想 return 当发现它不是素数时,但你需要继续遍历所有数字才能说素数是素数。此外,翻转 return 值以使其更直观。
def check_prime(n):
for i in range(2,n,1):
if(n%i)==0:
return 0
return 1
您需要使循环中的 return 成为条件。在这种情况下,它会在一个循环后退出,这就是为什么你会看到它 return 误报。