【问题标题】:How to properly check if a number is a prime number如何正确检查一个数是否为质数
【发布时间】:2022-11-25 02:55:38
【问题描述】:

嘿,所以我有这个功能来检查一个数字是否是质数

def is_prime(n):
    flag = True
    for i in range(2, n ):
        if (n % i) == 0:
            flag = False
    return flag


print(is_prime(1))

但是,当我测试数字 1 时,它会跳过 for 循环并返回 True,这是不正确的,因为 1 不是素数。 我该如何解决这个问题?

【问题讨论】:

  • 你必须把它作为一个特例。如果 n == 1,则返回 False。
  • 谢谢,你会不会碰巧知道为什么它认为 1 是质数。整个事情是一般数学的讨论。有人认为 1 不是质数,也有人认为相反。
  • 显然,如果您从 2 开始循环,则您当前的代码对于 1 没有明确定义。

标签: python function


【解决方案1】:

您可以首先检查 n 是否大于 1 代码应该继续,否则它应该返回 False。如果 n 通过了第一个条件,那么代码才能继续验证 n 是否确实是质数。

def is_prime(n):
    flag = True
    if n > 1:
        for i in range(2, n ):
            if (n % i) == 0:
                flag = False

        return flag # Returns this flag after check whether n is prime or not
        
    # Returns False if n <= 1
    return False


print(is_prime(1))

输出:

False

【讨论】:

    猜你喜欢
    • 2022-12-12
    • 2011-11-19
    • 1970-01-01
    • 2020-03-10
    • 2011-04-04
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 2017-02-02
    相关资源
    最近更新 更多