Я абсолютный новичок в python, но я пытаюсь вычислить что-то, что должно действовать как сито Eratosthenes.Попытка вычислить сито Eratosthenes
Я собираюсь начать легко и просто создать набор со всех целых чисел от 2 до 100. Давайте назовем, что набор С.
Затем я хочу, чтобы создать множество всех целых чисел п, что 2П содержащихся в этом множестве, назовем его P1. Другими словами, набор целых чисел 2, 4, 6, 8 и т. Д.
Я хочу сделать то же самое, но с P2 = 3n, а затем P3 = 5n.
В конце концов, я хочу вернуть все целые числа моего множества S, но не обращайте внимания на целые числа в P1, P2 и P3.
Как я буду продолжать это делать?
Моя попытка:
numbers=set(range(2,100))
, но я застрял на создании других наборов и пренебрегая их!
Спасибо.
Моя идея до сих пор:
def sieve(n):
S = set(range(2, 100))
P1 = set(range(0, 100, 2))
P2 = set(range(0, 100, 3))
P3 = set(range(0, 100, 5))
P5 = set(range(0, 100, 7))
return S-P1-P2-P3-P5
print (sieve(100))
Try 'диапазон (2, 100, 2),' диапазон (3, 100, 3) 'и т. Д. Третий параметр - это шаг. –
И как я отбрасываю наборы? – user3200098
Выделение наборов. 'S - P1' и т. Д. – Hyperboreus