IsPrime功能错误?

Hum*_*mus 0 python

我写了这个函数来检查一个数字是否为素数.它本身似乎工作正常但是当我在另一个函数中使用它时,它似乎不起作用.

这是我的IsPrime功能:

def is_prime(n):
    boolean = False
    if n == 2 or n == 3:
            return True
    for x in range(3, int(n**0.5)+1, 2):
        if n % x == 0:
            return False
    return True
Run Code Online (Sandbox Code Playgroud)

下面的函数计算2000000以下所有素数的总和:

def problem10(prime, result):
    if prime > 2000000:
        return 
    if is_prime(prime):
        print 'prime is ', prime 
        result = result + prime
        problem10(prime + 1, result)
    return result
Run Code Online (Sandbox Code Playgroud)

我无法理解我哪里出错了.

评论将不胜感激.

jpm*_*jpm 6

is_prime不检查偶数.例如,如果你传递它4,它会看到它既不是2也不是3,然后进入循环,它将执行一次,检查它是否可被3整除(它不是).退出循环时,它会返回True,当我们知道4实际上不是素数时.