diff --git a/py3/functional/prime_numbers.py b/py3/functional/prime_numbers.py new file mode 100755 index 0000000..e6a6a9e --- /dev/null +++ b/py3/functional/prime_numbers.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +def main(): + for n in primes(): + if n < 1000: + print(n) + else: + break + +def _odd_iter(): + n = 1 + while True: + n = n + 2 + yield n + +def _not_divisible(n): + return lambda x: x % n > 0 + +def primes(): + yield 2 + it = _odd_iter() + while True: + n = next(it) + yield n + it = filter(_not_divisible(n), it) + +if __name__ == '__main__': + main()