#X2 = 2 #X3 = 3 #X5 = 5 Macro Ham(w) PrintN("H("+Str(w)+") = "+Str(Hamming(w))) EndMacro Procedure.i Hamming(l.i) Define.i i,j,k,n,m,x=#X2,y=#X3,z=#X5 Dim h.i(l) : h(0)=1 For n=1 To l-1 m=x If m>y : m=y : EndIf If m>z : m=z : EndIf h(n)=m If m=x : i+1 : x=#X2*h(i) : EndIf If m=y : j+1 : y=#X3*h(j) : EndIf If m=z : k+1 : z=#X5*h(k) : EndIf Next ProcedureReturn h(l-1) EndProcedure OpenConsole("Hamming numbers") For h.i=1 To 20 Ham(h) Next Ham(1691) Input()