38 lines
829 B
Plaintext
38 lines
829 B
Plaintext
Function hailstone(number As Uinteger) As Uinteger
|
|
Dim As Uinteger count = 1
|
|
|
|
While number <> 1
|
|
If (number And 1) = 1 Then
|
|
number += number Shr 1 + 1
|
|
count += 2
|
|
Else
|
|
number Shr= 1
|
|
count += 1
|
|
End If
|
|
Wend
|
|
Return count
|
|
End Function
|
|
|
|
Sub Main()
|
|
Dim As Uinteger seqlen
|
|
seqlen = hailstone(27)
|
|
Print "Sequence length for 27 is "; seqlen
|
|
|
|
Dim maxlen As uInteger = 0
|
|
Dim maxnum As uInteger = 0
|
|
For number As Uinteger = 2 To 100000
|
|
seqlen = hailstone(number)
|
|
If seqlen > maxlen Then
|
|
maxlen = seqlen
|
|
maxnum = number
|
|
End If
|
|
Next
|
|
Print "The number with the longest hailstone sequence is "; maxnum
|
|
Print "Its sequence length is "; maxlen
|
|
Print
|
|
End Sub
|
|
|
|
Main()
|
|
|
|
Sleep
|