我的代码有问题,我的老师要求我检查素数,但他不允许我使用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
我如何解决这个问题?我只需要一个答案:对或错。谢谢你的帮助!!!
答案 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
整除,则返回True
。
True
或False
现在是函数的结果,您可以打印它或分配给变量并在其他地方使用。 E.g。
x = is_prime(12) // x is False now