Codecademy Python“is_prime”练习在“练习完美”中 - 它真的迭代了吗?

时间:2015-06-15 04:35:00

标签: python

我一直在关注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”值打印一个值?

3 个答案:

答案 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