下面的代码一直显示素数的“不是素数”,而非素数的数字是“素数”。我究竟做错了什么?
quuN = int(input("ENTER NUMBER : "))
quuM = 2
if (quuN <= 0) :
print("ENTER NON-NEGATIVE NUMBER PLEASE")
elif (quuN % quuM == 0) :
print(" IS PRIME " )
else :
print("IS NOT PRIME ")
答案 0 :(得分:0)
逻辑错误
素数(或素数)是大于1的自然数,除了1和自身之外没有正除数。大于1的自然数不是素数,称为复合数。
下面的简单python代码
def is_prime(n):
for i in range(3, n):
if n % i == 0:
return False
return True
答案 1 :(得分:0)
以上代码检查数字是偶数还是奇数。如果输入素数,例如17,则代码检查17是否小于或等于0.然后它检查 17%2 ,它评估为1,而不是0.因此,否则执行块,打印 IS NOT PRIME 。
如果输入偶数,则会打印 IS PRIME。
此代码检查Prime编号。
def is_prime(n):
import math
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
return False
return True
答案 2 :(得分:0)
这是不使用任何库的答案
注意:只需要检查直到sqrt(n),解释here
def isPrime(n):
if (n<=1): return False
for i in range(2, int(n**(.5))+1):
if (n%i==0):return False
return True