' If there are no two consecutive 1s in a number binary representation,
' it is Sparse. 5 (101) is sparse, 6 (110) is not.
Imports System
Public Class Program
Public Shared Function is_sparse(ByVal n As Integer) As Boolean
Dim result As Integer = n And (n >> 1)
If result = 0 Then Return True
Return False
End Function
Public Shared Function next_sparse(ByVal number As Integer) As Integer
While True
If is_sparse(number) Then
Return number
End If
number += 1
End While
Return 0
End Function
Public Shared Sub Main()
Console.WriteLine(next_sparse(6))
Console.WriteLine(next_sparse(5))
Console.WriteLine(next_sparse(38))
Console.WriteLine(next_sparse(305))
End Sub
End Class
' run:
'
' 8
' 5
' 40
' 320
'