我一直在关注Codecademy python课程,我有一个有效的解决方案。但是,在验证过程中,我添加了一些额外的代码来打印for循环所处的当前状态。然而,当我执行代码时,它似乎在退出之前经历了一次迭代,我知道这不是案件。以下是我的代码:
def is_prime(x):
if x < 2:
return False
if x == 2:
return True
if x == 3:
return True
else:
for n in range(2,x-1):
if x % n == 0:
print "Current value is %d." %n
return False
return True
当数字通过循环时,如何使每个“n”值打印一个值?
答案 0 :(得分:1)
您的问题是您只在x % n == 0
时打印,然后立即返回'False',因此只打印一次。
您需要将print
语句移到for
循环下方,例如 -
def is_prime(x):
if x < 2:
return False
if x == 2:
return True
if x == 3:
return True
else:
for n in range(2,x-1):
print "Current value is %d." %n
if x % n == 0:
return False
return True
答案 1 :(得分:1)
试试这个。我正在使用费马的小定理:
def is_prime(x):
if x > 1 and ((2)**x-(2))%x == 0:
return True
return False
答案 2 :(得分:0)
def is_prime(x):
if x < 2:
return False
else:
for n in range(2,x - 1):
if x % n == 0:
return False
return True