В математике простыми числами называют числа, которые делятся на 1 и на само себя. Часто в учебных целях при изучении языков программирования встречается задача, в которой просят создать генератор простых чисел. Напишем функцию генерации простых чисел на языке Python.
def primes():
i = 2
while True:
for j in range(2, i + 1):
if j != i and i % j == 0:
break
else:
yield i
i += 1
В цикле проверяем все числа последовательности на делимость без остатка на все числа, которые меньше текущего числа. Как только остаток от деления равен 0, начинается проверка следующего числа. В функции с помощью оператора yield вычисления приостанавливаются. В качестве результата возвращается очередное простое число.
Пример использования:
print(list(itertools.takewhile(lambda x : x <= 31, primes())))
# [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]