【问题标题】:Creating user defined function for checking prime no in python创建用于在 python 中检查素数的用户定义函数
【发布时间】:2022-11-17 11:44:52
【问题描述】:
num=int(input("enter the no: "))
def Prime(num):

    """Check whether a no is prime or not"""
    for i in range(2,num):

        if num%i==0:
            print(num," is not prime no")
            break
        else:
            print(num,"is prime no")
            break

print(Prime(num))

虽然输出是这样的

    enter the no: 45
    45 is prime no
    None

这段检查素数的代码有什么问题,以及为什么在输出中打印“无”。我如何在这里使用返回。 对于某些不正确的输出,如 97,输出是正确的,但对于 45,输出是错误的。 非常感谢您的建议。

【问题讨论】:

  • 您只检查是否可以被 2 整除。无论是真还是假,您都执行 break,并且循环不会继续执行任何更高的可能除数。
  • 如果我删除 break 然后它迭代范围高达 num 并返回输出作为素数而不是素数 45
  • 我将如何遍历范围并相应地打印输出?假设如果 i=2 那么它将转到 else 语句并打印 no is prime 并且它不会遍历范围。

标签: python pycharm


【解决方案1】:
num=int(input("enter the no: "))

def Prime(num):
    flag = False
    if num > 1:
        for i in range(2, num):
            if (num % i) == 0:
                flag = True
                break
    
    return flag
        
isPrime = Prime(num)

if isPrime:
        print(num, "is not a prime number")
else:
    print(num, "is a prime number")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 2010-09-15
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多