我尝试实施Eratosthenes的筛子

时间:2019-04-29 13:04:45

标签: python primes

我尝试实现Eratosthenes的筛网,以检查数字是否为Python中的质数。如果我运行Programm,它将显示我:“进程已完成,退出代码为0”。怎么了?

def primzahl(n):

    primzahlen = []
    numbers = list(range(2,n))
    c = 2
    while c*c < n:
        for k in range(c,n,c):
            if k in numbers:
                numbers.remove(k)
        primzahlen.append(c)
        c = numbers[0]

    return primzahlen + numbers
    print(primzahl(100))

1 个答案:

答案 0 :(得分:0)

只需取消缩进print语句即可将其从函数中删除。

def primzahl(n):

    primzahlen = []
    numbers = list(range(2,n))
    c = 2
    while c*c < n:
        for k in range(c,n,c):
            if k in numbers:
                numbers.remove(k)
        primzahlen.append(c)
        c = numbers[0]

    return primzahlen + numbers

#Unindent this statement
print(primzahl(100))

然后输出

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]