Solved 69.

main
Felix Martin 2019-01-30 22:58:02 -05:00
parent fdb62e42f8
commit fe73c53c46
1 changed files with 62 additions and 0 deletions

62
python/e069.py Normal file
View File

@ -0,0 +1,62 @@
def prime_factors(n):
f = []
while n % 2 == 0:
f.append(2)
n //= 2
d = 3
while d * d <= n:
while n % d == 0:
f.append(d)
n //= d
d += 2
if n != 1:
f.append(n)
return f
assert(prime_factors(8) == [2, 2, 2])
assert(prime_factors(2501232) == [2, 2, 2, 2, 3, 107, 487])
def prime_factors_unique(n):
f = []
if n % 2 == 0:
f.append(2)
while n % 2 == 0:
n //= 2
d = 3
while d * d <= n:
if n % d == 0:
f.append(d)
while n % d == 0:
n //= d
d += 2
if n != 1:
f.append(n)
return f
def prime_factors_count(n):
return len(prime_factors_unique(n))
print(prime_factors_count(9699690))
#factor_count_max = 0
#n_max = 0
#for n in range(1, 1000001):
# factor_count = prime_factors_count(n)
# if factor_count > factor_count_max:
# factor_count_max = factor_count
# n_max = n
#print("factor count: {} n: {}".format(factor_count_max, n_max))
def get_phi(n):
phi = n
for p in prime_factors_unique(n):
phi *= (1 - 1 / p)
return int(phi)
print(get_phi(210412312))