Я пытаюсь реализовать сито Эратосфена - PullRequest
0 голосов
/ 29 апреля 2019

Я попытался реализовать сито Эратосфена, чтобы проверить, являются ли числа простыми числами в Python. Если я запускаю Программу, она показывает мне: «Процесс завершен с кодом выхода 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 голосов
/ 29 апреля 2019

Просто удалите отступ для вашего оператора 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]
...