简单的素数查找代码有什么问题?

时间:2019-04-29 16:31:13

标签: python

我绝对是新手。只是尝试调整一些基础知识。但是不知何故我无法运行它。这可能是一些愚蠢的疏忽,或者我不知道。有人可以看看吗?

import math

def prime(n):
    if n == 1:
        return False
    maxx_d = math.floor(math.sqrt(n))
    for d in range(2 , 1+ maxx_d):
        if n % d == 0:
            return False

        return True
for n in range(1, 21):
    print(n, prime(n))

应该显示素数,但是要打印出来:

1 False
2 None
3 None
4 False
5 True
6 False
7 True
8 False
9 True
10 False
11 True
12 False
13 True
14 False
15 True
16 False
17 True
18 False
19 True
20 False

1 个答案:

答案 0 :(得分:0)

对于每个orhtej2's commentreturn True上的缩进太深。” 这将起作用:

def prime(n):
    if n == 1:
        return False
    maxx_d = math.floor(math.sqrt(n))
    for d in range(2, 1+maxx_d):
        if n % d == 0:
            return False
    return True