Guest User

amicable.nim

a guest
Jan 23rd, 2017
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Nim 0.45 KB | None | 0 0
  1. proc d*(n: int): int =
  2.   var result: int = 1
  3.   var m: int = 2
  4.   while m < n div 2 + 1:
  5.     if (n mod m) == 0:
  6.       inc(result, m)
  7.     inc(m)
  8.   return result
  9.  
  10. proc amicable*(n: int): int =
  11.   var dn: int = d(n)
  12.   var ddn: int = d(dn)
  13.   var result: int = 0
  14.   if ddn == n and n != dn and n < 100000:
  15.     inc(result, n)
  16.   return result
  17.  
  18.  
  19. var result: int = 0
  20. var i: int = 1
  21. while i < 10000:
  22.     inc(result, amicable(i))
  23.     inc(i)
  24. echo result
Add Comment
Please, Sign In to add comment