RosettaCodeData/Task/Perfect-numbers/Oz/perfect-numbers.oz
2023-07-01 13:44:08 -04:00

12 lines
288 B
Text

declare
fun {IsPerfect N}
fun {IsNFactor I} N mod I == 0 end
Factors = {Filter {List.number 1 N-1 1} IsNFactor}
in
{Sum Factors} == N
end
fun {Sum Xs} {FoldL Xs Number.'+' 0} end
in
{Show {Filter {List.number 1 10000 1} IsPerfect}}
{Show {IsPerfect 33550336}}