A Disarium number is an integer where the sum of each digit raised to the power of its position in the number, is equal to the number.



E.G.
135 is a Disarium number:

 11 + 32 + 53 == 1 + 9 + 125 == 135

There are a finite number of Disarium numbers.



Task
 Find and display the first 18 Disarium numbers.


Stretch
 Find and display all 20 Disarium numbers.


See also
 Geeks for Geeks - Disarium numbers
 OEIS:A032799 - Numbers n such that n equals the sum of its digits raised to the consecutive powers (1,2,3,...)
 Related task: Narcissistic decimal number
 Related task: Own digits power sum Which seems to be the same task as Narcissistic decimal number...




function isDisarium(n)
	digitos = length(string(n))
	suma = 0
	x = n
	while x <> 0
		suma += (x % 10) ^ digitos
		digitos -= 1
		x = x \ 10
	end while
	if suma = n then return True else return False
end function
 
limite = 19
cont = 0 : n = 0
print "The first"; limite; " Disarium numbers are:"
while cont < limite
	if isDisarium(n) then
		print n; " ";
		cont += 1
	endif
	n += 1
end while
end