Advertisement
danchaofan

Euler #95

Dec 24th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.74 KB | None | 0 0
  1. def sumdivisors(n):
  2.     divisors = []
  3.     for x in range(1, int(n**0.5) + 2):
  4.         if n % x == 0:
  5.             divisors.extend((x, int(n/x)))
  6.     divisors.remove(divisors[1])
  7.     runningtotal = 0
  8.     for y in divisors:
  9.         runningtotal += y
  10.     return runningtotal
  11.  
  12. bestlist = []
  13. for a in range(1, 10**6 + 1):
  14.     print(a)
  15.     current = []
  16.     while True:
  17.         if (a in current) or (a > 10**6):
  18.             try:
  19.                 current = current[current.index(a):]
  20.             except ValueError:
  21.                 break
  22.             if len(current) > len(bestlist):
  23.                 bestlist = current
  24.                 break
  25.             break
  26.         current.append(a)
  27.         a = sumdivisors(a)
  28. print(sorted(bestlist)[0])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement