首页 > 解决方案 > 当被问到“这是一个素数吗?”时,需要创建一个返回布尔值的函数。

问题描述

我正在尝试创建一个函数来测试一个数字是否是素数,然后返回 True 或 False。我是 Python 的初学者,所以请让你的代码尽可能简单。这是我到目前为止所尝试的(仅返回 True):

def isPrime(x):

    x = int(x)
    for i in range(2, x):
        if(x % i == 0):
            x == False
        else:
            x == True

    return x
                
print(isPrime(input("Enter a prime number.")))  

标签: pythonfunctionbooleanprimes

解决方案


你几乎成功了,只需要像这样改变它:

def isPrime(x):
    x = int(x)
    for i in range(2, x):
        if x % i == 0:
            return False
    return x >= 2
                
print(isPrime(input("Enter a prime number.")))

编辑:正如@MarkRansom 所指出的,当i变量达到 的平方根时x,可以安全地假设它没有更多可能的除数:

from math import sqrt

def isPrime(x):
    x = int(x)
    for i in range(2, int(sqrt(x)) + 1):
    ...

推荐阅读