在我的查找素数的程序中,即使用户输入素数,也只显示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," is prime")
else:
print(num," is not prime")
答案 0 :(得分:2)
当用户输入n
的素数时,它只能被1和它自身整除。但是range(1,n)
永远不会到达n
,因此ctr
对于素数而言是1,而不是2。
答案 1 :(得分:0)
如果您仍然遇到问题,请尝试使用以下功能:
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
替换为您要检查的号码。