Python 3.x python 3。检查数字是否为素数时出现逻辑错误
在查找素数的程序中,即使用户输入素数,也只显示else语句。我的if-else语句有问题吗?还是用数学算符?我已经尝试用python语法正确地缩进它。请更正代码Python 3.x python 3。检查数字是否为素数时出现逻辑错误,python-3.x,Python 3.x,在查找素数的程序中,即使用户输入素数,也只显示else语句。我的if-else语句有问题吗?还是用数学算符?我已经尝试用python语法正确地缩进它。请更正代码 num=int(input("enter a number : ")) ctr=0 i=1 for i in range(1,num): if(num%i==0): ctr+=1 if(ctr==2): print(num," i
num=int(input("enter a number : "))
ctr=0
i=1
for i in range(1,num):
if(num%i==0):
ctr+=1
if(ctr==2):
print(num," is prime")
else:
print(num," is not prime")
当用户为
n
输入素数时,它只能被1和自身整除。但是范围(1,n)
永远无法到达n
,因此ctr
对于素数是1,而不是2。当用户为n
输入素数时,它只能被1和自身整除。但是范围(1,n)
永远无法到达n
,因此ctr
对于素数是1,而不是2。如果您仍然有问题,请尝试使用以下函数:
def isprime(number):
if number == 1:
return False
for i in range(2,int(number**0.5)+1):
if number%i==0:
return False
return True
要使用它,请键入
isprime(number)
,并用要检查的号码替换number
。如果仍有问题,请尝试使用以下功能:
def isprime(number):
if number == 1:
return False
for i in range(2,int(number**0.5)+1):
if number%i==0:
return False
return True
要使用它,请键入isprime(number)
并用要检查的数字替换number
。将if(ctr==2)
更改为if(ctr==1)
。您可以删除显示i=1
的行。将if(ctr==2)
更改为if(ctr==1)
。您可以删除显示i=1
的行。