[英]How to put a limit on my divisor when looking for a prime number
number = int(input("Enter a number: "))
prime = True
if number <= 1:
prime = False
divisor = 1
divisor = 2
while divisor < number and prime == True:
if divisor == number:
break
while divisor < number and prime == True:
if (number > 1) % divisor == 0:
prime = False
elif number % divisor !=0:
prime = True
divisor = divisor + 1
if number == 1:
divisor = divisor - 1
if prime == True:
print(f"{number} is prime.")
elif prime == False:
print(f"{number} is not prime.")
print(f"{number} is divisible by {divisor}")
I am trying to write code to determine whether the input number is a prime number or not (not including 1).我正在尝试编写代码来确定输入数字是否为质数(不包括 1)。 It works when I put in numbers like 8, but if I put in a number like 27, the while loop goes on forever and I don't know how to fix it.
当我输入像 8 这样的数字时它可以工作,但是如果我输入像 27 这样的数字,while 循环会永远持续下去,我不知道如何修复它。
Use a debugger like 'python tutor' or 'thonny'.使用像“python 导师”或“thonny”这样的调试器。 Your problem is on line 9, you have to have a way to escape the loop otherwise it goes forever because 2 is smaller than 27 and the if statement never goes to be true.
你的问题在第 9 行,你必须有办法逃脱循环,否则它会永远持续下去,因为 2 小于 27 并且 if 语句永远不会为真。 You don't set any increaser/decreaser.
您没有设置任何增加/减少。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.