cat hamming_numbers.bc define min(x,y) { if (x < y) { return x } else { return y } } define hamming(limit) { i = 0 j = 0 k = 0 h[0] = 1 x2 = 2 x3 = 3 x5 = 5 for (n=1; n<=limit; n++) { h[n] = min(x2,min(x3,x5)) if (h[n] == x2) { x2 = 2 * h[++i] } if (h[n] == x3) { x3 = 3 * h[++j] } if (h[n] == x5) { x5 = 5 * h[++k] } } return (h[limit-1]) } for (lab=1; lab<=20; lab++) { hamming(lab) } hamming(1691) hamming(1000000) quit