[英]Check whether the number in a range is a prime number, if not, return all factors
假设我们要查看范围(2,10)。
我写了以下代码:
for n in range(2,10):
for x in range(2,n):
if n%x == 0:
print(n,'equals',x,'*',n//x)
break
else:
print(n, "is a prime number")
上述方法可以正确地进行检查,但它也返回一个因素。
但是如果我替换 break 继续:
for n in range(2,10):
for x in range(2,n):
if n%x == 0:
print(n,'equals',x,'*',n//x)
continue
else:
print(n, "is a prime number")
它不能再正确地进行检查了。 那么有没有更好的方法来正确地检查和所有因素? 你的回答对我有很大的帮助!!
不要使用 break 或 continue,而是按如下方式制作和使用 bool 变量prime
。
for n in range(2,10):
prime = True
for x in range(2, n):
if n%x == 0:
print(n,'equals',x,'*',n//x)
prime = False
if prime:
print(n, "is a prime number")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.