RosettaCodeData/Task/Amicable-pairs/Icon/amicable-pairs.icon
2026-04-30 12:34:36 -04:00

16 lines
410 B
Text

link factors
procedure main(A)
i := \A[1] | 20000
every (n := seq()\i, m := seq(n)\(i-n)) do
write((amicable(n,m),n)," : ",m)
end
procedure amicable(n,m)
static cache
initial cache := table()
if n = m then fail
if /cache[n] then every (cache[n] := 0) +:= (n ~= divisors(n))
if /cache[m] then every (cache[m] := 0) +:= (m ~= divisors(m))
return (cache[n] = m, cache[m] = n)
end