Skip to main content
 首页 » 编程设计

Python:验证质数

2025年05月04日10cmt

我写了下面的代码来检查输入的数字是否是质数,但是有一个问题我无法通过:

def main(): 
    n = input("Please enter a number:") 
    is_prime(n) 
 
def is_prime(a): 
    x = True  
    for i in (2, a): 
        while x: 
            if a%i == 0: 
                x = False 
            else: 
                x = True 
 
    if x: 
        print "prime" 
    else: 
        print "not prime" 
 
main() 

如果输入的数字不是质数,它会显示“不是质数”,这是应该的。但如果数字是质数,则不会显示任何内容。你能帮我解决一下吗?

请您参考如下方法:

有许多有效的方法来测试素数(这不是其中之一)。但是您编写的循环可以用 Python 简洁地表示:

def is_prime(a): 
    return all(a % i for i in xrange(2, a)) 

也就是说,如果 2 和 a(不包括在内)之间的所有数字在除以 a 时都给出非零余数,则 a 是质数。