Advertisement
Eastkap

Project Euler 21 : Amicable Numbers

Dec 14th, 2014
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.50 KB | None | 0 0
  1. from math import ceil, sqrt
  2. fsum=0
  3. def div (n):
  4.     sum=1
  5.     #speed trick, lowest divisor of a pair is always lower than sqrt(n), allows the program to run much faster
  6.     for i in range (2,ceil(sqrt(n)),1):
  7.         if n%i==0:
  8.             sum=sum+i
  9.             sum=sum+(n/i)
  10.     return sum
  11.  
  12. def ami(n):
  13.     x=div(n)
  14.     y=div(x)
  15.     if n==y and n!=x:
  16.         return True
  17.     else:
  18.         return False
  19.    
  20. for i in range(1,10001,1):
  21.     if ami(i)==True:
  22.         fsum=fsum+i
  23. print(fsum)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement