From 7b624de8e3e3637a07364f992c1d7e4185e4a872 Mon Sep 17 00:00:00 2001 From: Charles Date: Sun, 11 Aug 2019 18:42:52 +0200 Subject: initial commit --- helper/prime.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 helper/prime.py (limited to 'helper/prime.py') diff --git a/helper/prime.py b/helper/prime.py new file mode 100644 index 0000000..1107c7c --- /dev/null +++ b/helper/prime.py @@ -0,0 +1,41 @@ +from math import floor, sqrt +from itertools import count + + +def is_prime(number): + if number == 1: + return False + + if number == 2: + return True + if number > 2 and number % 2 == 0: + return False + + boundary = floor(sqrt(number)) + 1 + for div in range(3, boundary, 2): + if number % div == 0: + return False + return True + + +def primes_until(max_range): + for x in range(2, max_range): + if is_prime(x): + yield x + + +def primes_loop(): + for i in count(2): + if is_prime(i): + yield i + + +def get_prime_factors(num): + factors = [] + while num > 1: + for i in primes_loop(): + if num % i == 0: + factors.append(i) + num = num // i + break + return factors -- cgit