Advertisement
danchaofan

Euler #72

Dec 25th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.55 KB | None | 0 0
  1. def factorize(n):
  2.     factors = []
  3.     while n % 2 == 0:
  4.         factors.append(2)
  5.         n = int(n / 2)
  6.     for x in range(3, int(n ** 0.5) + 1, 2):
  7.         while n % x == 0:
  8.             n = int(n / x)
  9.             factors.append(x)
  10.     if n > 2:
  11.         factors.append(int(n))
  12.     return set(factors)
  13.  
  14.  
  15. def totient(n):
  16.     coprimes = n
  17.     for x in factorize(n):
  18.         coprimes *= (1 - (1 / x))
  19.     return round(coprimes)
  20.  
  21. answer = -1
  22. for a in range(1, 10**6+1):
  23.     print(a)
  24.     answer += a
  25.     answer -= (a - totient(a))
  26. print(answer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement