def d(n)
total = 1
(2..Math.sqrt(n)).each do |i|
if n % i == 0
total += n / i + i
end
end
total
end
def amicable_pair?(a, repo)
repo[a] = b = d(a)
a != b && a == repo[b]
end
def add_amicable_pairs(n)
repo = {}
total = 0
n.times do |i|
if amicable_pair?(i, repo)
total += (i + repo[i])
end
end
puts total
end
add_amicable_pairs 10000
ZGVmIGQobikKICB0b3RhbCA9IDEKICAoMi4uTWF0aC5zcXJ0KG4pKS5lYWNoIGRvIHxpfAogICAgaWYgbiAlIGkgPT0gMAogICAgICB0b3RhbCArPSBuIC8gaSArIGkKICAgIGVuZAogIGVuZAogIHRvdGFsCmVuZAoKZGVmIGFtaWNhYmxlX3BhaXI/KGEsIHJlcG8pCiAgcmVwb1thXSA9IGIgPSBkKGEpCiAgYSAhPSBiICYmIGEgPT0gcmVwb1tiXQplbmQKCgpkZWYgYWRkX2FtaWNhYmxlX3BhaXJzKG4pCiAgcmVwbyAgPSB7fQogIHRvdGFsID0gMAogIG4udGltZXMgZG8gfGl8CiAgICBpZiBhbWljYWJsZV9wYWlyPyhpLCByZXBvKQogICAgICB0b3RhbCArPSAoaSArIHJlcG9baV0pCiAgICBlbmQKICBlbmQKICBwdXRzIHRvdGFsCmVuZCAgCgphZGRfYW1pY2FibGVfcGFpcnMgMTAwMDA=