RosettaCodeData/Task/Amicable-pairs/Julia/amicable-pairs-2.julia
2023-07-01 13:44:08 -04:00

26 lines
595 B
Text

using Primes
function amicable_numbers(max::Integer = 200_000_000)
function sum_proper_divisors(n::Integer)
sum(vec(map(prod, Iterators.product((p.^(0:m) for (p, m) in factor(n))...)))) - n
end
count = 0
cumsum = 0
println("count, a, b, a+b, Sum(a+b)")
for a in 2:max
isprime(a) && continue
b = sum_proper_divisors(a)
if a < b && sum_proper_divisors(b) == a
count += 1
sumab = a + b
cumsum += sumab
println("$count, $a, $b, $sumab, $cumsum")
end
end
end
amicable_numbers()