在我的这段代码中,我不确定出了什么问题。 这似乎适合于计算素数 但当我尝试99号时,它显示它是一个基本的否
num=int(input('Enter a positive no.\n'))
prime=False
if num==1:
prime=False
elif num==2:
prime=True
else:
for i in range(2,num):
if num%2==0:
prime=False
else:
prime=True
if prime:
print('Prime no.')
else:
print('Not a prime')
你在写:
这使您检查数字是否为偶数,因为您只检查2的整除性。你应该做的是:
这样,您就可以检查这个数字是否还有其他因素。此外,break语句在发现一个因子后立即将您从循环中分离出来。这样,在99的情况下,逻辑发现9是因子,因此99不是素数后,循环立即停止。否则,循环将一直运行到98,当它看到99%98不是零时,它将覆盖标志值,您仍然可以看到99是素数
附言:为了使代码更快,您可能还希望将
range(2,(num/2)+1)
而不是range(2,num)
相关问题 更多 >
编程相关推荐