RosettaCodeData/Task/Happy-numbers/Phix/happy-numbers.phix
2016-12-05 23:44:36 +01:00

27 lines
461 B
Text

function is_happy(integer n)
sequence seen = {}
integer k
while n>1 do
seen &= n
k = 0
while n>0 do
k += power(remainder(n,10),2)
n = floor(n/10)
end while
n = k
if find(n,seen) then
return 0
end if
end while
return 1
end function
integer n = 1
sequence s = {}
while length(s)<8 do
if is_happy(n) then
s &= n
end if
n += 1
end while
?s