' FB 1.05.0 Win64 ' The biggest integer which FB supports natively is 8 bytes so unable ' to calculate 1 millionth Hamming number without using an external ' "bigint" library such as GMP Function min(x As Integer, y As Integer) As Integer Return IIf(x < y, x, y) End Function Function hamming(n As Integer) As Integer Dim h(1 To n) As Integer h(1) = 1 Dim As Integer i = 1, j = 1, k = 1 Dim As Integer x2 = 2, x3 = 3, x5 = 5 For m As Integer = 2 To n h(m) = min(x2, min(x3, x5)) If h(m) = x2 Then i += 1 x2 = 2 * h(i) End If If h(m) = x3 Then j += 1 x3 = 3 * h(j) End if If h(m) = x5 Then k += 1 x5 = 5 * h(k) End If Next Return h(n) End Function Print "The first 20 Hamming numbers are :" For i As Integer = 1 To 20 Print hamming(i); " "; Next Print : Print Print "The 1691st hamming number is :" Print hamming(1691) Print Print "Press any key to quit" Sleep