Moved 1 to 5 to Python and learned a ton.

This commit is contained in:
2019-07-13 23:58:38 -04:00
parent 414cf4b074
commit b246d56acd
13 changed files with 402 additions and 2 deletions

27
python/lib_prime.py Normal file
View File

@@ -0,0 +1,27 @@
try:
from lib_misc import get_item_counts
except ModuleNotFoundError:
from .lib_misc import get_item_counts
def prime_factors(n):
# TODO: Look into using a prime wheel instead.
factors = []
rest = n
divisor = 2
while rest % divisor == 0:
factors.append(divisor)
rest //= divisor
divisor = 3
while divisor * divisor <= rest:
while rest % divisor == 0:
factors.append(divisor)
rest //= divisor
divisor += 2
if rest != 1:
factors.append(rest)
return factors
def prime_factors_count(n):
return get_item_counts(prime_factors(n))