这是一个程序,它将接受用户想要的数字,并使用'mod‘(%)检查它是否是质数。
我已经弄明白了它的逻辑,比如使用range函数来限制它重复的次数,并使用mod来声明如果任何一个数字的余数为零(除了1和它自己),那么它一定是一个质数。
number = int(input("Please type in your number"))
prime = ""
for a in range (2, number):
if number % a == 0:
prime = prime + "This is not prime"
break
else:
prime = prime + "This is prime"
print (prime)其中一个最大的问题是,对于某些数字(例如49),它会将结果显示为“This is primeThis is not prime”。对于其他一些数字,例如65,它有时会错误地将其标记为质数。
发布于 2019-07-04 19:56:02
只需最少的修复即可轻松获得正确的行为:
number = int(input("Please type in your number: "))
for a in range(2, number):
if number % a == 0:
prime = "This is not prime"
break
else:
prime = "This is prime"
print(prime)for-else的工作方式是,只有当else循环没有被break语句过早结束时,for块才会运行。使用它比只使用if-else更好,因为确实没有必要在循环的每一次遍历中都设置"This is prime“值。
发布于 2019-07-04 19:59:18
如果您想修复您的方法,您应该更改为=而不是+=
number = int(input("Please type in your number: "))
prime = ""
for a in range (2, number):
if number % a == 0:
prime = "This is not prime"
break
else:
prime = "This is prime"
print (prime)
Please type in your number: 49
This is not prime
Please type in your number: 65
This is not prime
Please type in your number: 13
This is prime发布于 2019-07-04 20:14:35
num = 20
如果num > 1:
对于范围(2,num)中的i: if (Num%i) == 0:
print(num,“不是质数”)
print(i,"times",num//i,"is",num)
break else: print(num,“是一个质数”)
else: print(num,“不是质数”)
输出20不是质数2乘以10等于20
19是一个质数
https://stackoverflow.com/questions/56887376
复制相似问题