Narc:=proc(i)
	local num,len,j,sums:
	sums:=0:
	num := parse~(StringTools:-Explode((convert(i,string)))):
	len:=numelems(num):
	for j from 1 to len do
		sums:=sums+(num[j]^(len)):
	end do;
	if sums = i then
		return i;
	else
		return NULL;
	end if;
end proc:

i:=0:
NDN:=[]:
while numelems(NDN)<25 do
	NDN:=[op(NDN),(Narc(i))]:
	i:=i+1:
end do:
NDN;
