16 lines
410 B
Text
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
|