RosettaCodeData/Task/Disarium-numbers/SETL/disarium-numbers.setl
2023-12-16 21:33:55 -08:00

13 lines
329 B
Text

program disarium_numbers;
loop for n in [0..2700000] | disarium n do
print(n);
end loop;
op disarium(n);
k := n;
digits := [[k mod 10, k div:= 10](1) : until k=0];
p := #digits+1;
powsum := +/[d ** (p -:= 1) : d in digits];
return powsum = n;
end op;
end program;