Moved 1 to 5 to Python and learned a ton.
This commit is contained in:
27
python/lib_prime.py
Normal file
27
python/lib_prime.py
Normal 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))
|
||||
Reference in New Issue
Block a user