37 lines
724 B
Python
37 lines
724 B
Python
def factor_decomposition(n):
|
|
p = 2
|
|
dec = {}
|
|
# print(n,"= ",end="")
|
|
while n >= p * p:
|
|
if n % p == 0:
|
|
if p in dec:
|
|
dec[p] += 1
|
|
else:
|
|
dec[p] = 1
|
|
# print(p, "* ", end="")
|
|
n /= p
|
|
else:
|
|
p += 1
|
|
# print(n)
|
|
if n in dec:
|
|
dec[n] += 1
|
|
else:
|
|
dec[n] = 1
|
|
return dec
|
|
|
|
|
|
def phi(n):
|
|
sol = 1
|
|
dec = factor_decomposition(n)
|
|
for (p, a) in dec.items():
|
|
sol *= (p**(a-1))*(p-1)
|
|
return sol
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print(factor_decomposition(85))
|
|
print(factor_decomposition(1200))
|
|
print(factor_decomposition(11011))
|
|
print(phi(9))
|
|
print(phi(85))
|