40 lines
705 B
Plaintext
40 lines
705 B
Plaintext
FUNCTION min (a, b)
|
|
IF a < b THEN min = a ELSE min = b
|
|
END FUNCTION
|
|
|
|
FUNCTION Hamming (limit)
|
|
DIM h(limit)
|
|
|
|
h(0) = 1
|
|
x2 = 2
|
|
x3 = 3
|
|
x5 = 5
|
|
i = 0
|
|
j = 0
|
|
k = 0
|
|
FOR n = 1 TO limit
|
|
h(n) = min(x2, min(x3, x5))
|
|
IF x2 = h(n) THEN
|
|
i = i + 1
|
|
x2 = 2 * h(i)
|
|
END IF
|
|
IF x3 = h(n) THEN
|
|
j = j + 1
|
|
x3 = 3 * h(j)
|
|
END IF
|
|
IF x5 = h(n) THEN
|
|
k = k + 1
|
|
x5 = 5 * h(k)
|
|
END IF
|
|
NEXT n
|
|
Hamming = h(limit - 1)
|
|
END FUNCTION
|
|
|
|
PRINT "The first 20 Hamming numbers are :"
|
|
FOR i = 1 TO 20
|
|
PRINT Hamming(i); " ";
|
|
NEXT i
|
|
|
|
PRINT
|
|
PRINT "H( 1691) = "; Hamming(1691)
|