素数跳棋

时间:2015-11-12 06:48:18

标签: python-2.7 python-3.5

我的代码有问题,我的老师要求我检查素数,但他不允许我使用If-Else功能。这是我的代码:

def is_prime(n):
    i = 2
    while (i % n != 0):
        while (n % i == 0) and ( n != i):
            print("False")
            break
        i += 1
    while (i == n):
        print("True")
        break
number = int(input("Please enter a certain number: "))

print(is_prime(number))

但问题是当我打印出结果时,对于不是素数的数字有点奇怪:

Please enter a certain number: 10

False False True None

我如何解决这个问题?我只需要一个答案:对或错。谢谢你的帮助!!!

1 个答案:

答案 0 :(得分:0)

简而言之:让你的功能返回一个值,而不是打印它。

def is_prime(n):
    i = 2
    while (i % n != 0):
        while (n % i == 0) and ( n != i):
            return False
        i += 1
    return True
number = int(input("Please enter a certain number: "))

print(is_prime(number))

说明:

一旦发现n不是素数(行while (n % i == 0) and ( n != i):),您就会返回False。此时此功能已离开,因此您不需要break。如果找不到n可被任何i整除,则返回TrueTrueFalse现在是函数的结果,您可以打印它或分配给变量并在其他地方使用。 E.g。

x = is_prime(12) // x is False now