' FB 1.05.0 Win64 Function isHappy(n As Integer) As Boolean If n < 0 Then Return False ' Declare a dynamic array to store previous sums. ' If a previous sum is duplicated before a sum of 1 is reached ' then the number can't be "happy" as the cycle will just repeat Dim prevSums() As Integer Dim As Integer digit, ub, sum = 0 Do While n > 0 digit = n Mod 10 sum += digit * digit n \= 10 Wend If sum = 1 Then Return True ub = UBound(prevSums) If ub > -1 Then For i As Integer = 0 To ub If sum = prevSums(i) Then Return False Next End If ub += 1 Redim Preserve prevSums(0 To ub) prevSums(ub) = sum n = sum sum = 0 Loop End Function Dim As Integer n = 1, count = 0 Print "The first 8 happy numbers are : " Print While count < 8 If isHappy(n) Then count += 1 Print count;" =>"; n End If n += 1 Wend Print Print "Press any key to quit" Sleep