17 lines
440 B
Text
17 lines
440 B
Text
isMunchausen := proc(n::posint)
|
|
local num_digits;
|
|
num_digits := map(x -> StringTools:-Ord(x) - 48, StringTools:-Explode(convert(n, string)));
|
|
return evalb(n = convert(map(x -> x^x, num_digits), `+`));
|
|
end proc;
|
|
|
|
Munchausen_upto := proc(n::posint) local k, count, list_num;
|
|
list_num := [];
|
|
for k to n do
|
|
if isMunchausen(k) then
|
|
list_num := [op(list_num), k];
|
|
end if;
|
|
end do;
|
|
return list_num;
|
|
end proc;
|
|
|
|
Munchausen_upto(5000);
|