30 lines
682 B
VB.net
30 lines
682 B
VB.net
Module HappyNumbers
|
|
Sub Main()
|
|
Dim n As Integer = 1
|
|
Dim found As Integer = 0
|
|
|
|
Do Until found = 8
|
|
If IsHappy(n) Then
|
|
found += 1
|
|
Console.WriteLine("{0}: {1}", found, n)
|
|
End If
|
|
n += 1
|
|
Loop
|
|
|
|
Console.ReadLine()
|
|
End Sub
|
|
|
|
Private Function IsHappy(ByVal n As Integer)
|
|
Dim cache As New List(Of Long)()
|
|
|
|
Do Until n = 1
|
|
cache.Add(n)
|
|
n = Aggregate c In n.ToString() _
|
|
Into Total = Sum(Int32.Parse(c) ^ 2)
|
|
If cache.Contains(n) Then Return False
|
|
Loop
|
|
|
|
Return True
|
|
End Function
|
|
End Module
|