Imports System
Public Class Program
Private Shared Function CalcCollatz(ByVal x As Long) As Long
If (x And 1) <> 0 Then
Return x * 3 + 1
End If
Return x / 2
End Function
Private Shared Sub PrintCollatzSequence(ByVal x As Long)
Console.Write(x & " ")
While x <> 1
x = CalcCollatz(x)
Console.Write(x & " ")
End While
End Sub
Public Shared Sub Main(ByVal args As String())
For i As Long = 3 To 11 - 1
PrintCollatzSequence(i)
Console.WriteLine()
Next
End Sub
End Class
' run:
'
' 3 10 5 16 8 4 2 1
' 4 2 1
' 5 16 8 4 2 1
' 6 3 10 5 16 8 4 2 1
' 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
' 8 4 2 1
' 9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
' 10 5 16 8 4 2 1
'