繁体   English   中英

检查一个范围内的数字是否为质数,如果不是,返回所有因数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM