35 lines
879 B
Text
35 lines
879 B
Text
( ( hamming
|
|
= x2 x3 x5 n i j k min
|
|
. tbl$(h,!arg) { This creates an array. Arrays are always global in Bracmat. }
|
|
& 1:?(0$h)
|
|
& 2:?x2
|
|
& 3:?x3
|
|
& 5:?x5
|
|
& 0:?n:?i:?j:?k
|
|
& whl
|
|
' ( !n+1:<!arg:?n
|
|
& !x2:?min
|
|
& (!x3:<!min:?min|)
|
|
& (!x5:<!min:?min|)
|
|
& !min:?(!n$h) { !n is index into array h }
|
|
& ( !x2:!min
|
|
& 2*!((1+!i:?i)$h):?x2
|
|
|
|
|
)
|
|
& ( !x3:!min
|
|
& 3*!((1+!j:?j)$h):?x3
|
|
|
|
|
)
|
|
& ( !x5:!min
|
|
& 5*!((1+!k:?k)$h):?x5
|
|
|
|
|
)
|
|
)
|
|
& !((!arg+-1)$h) (tbl$(h,0)&) { We delete the array by setting its size to 0 }
|
|
)
|
|
& 0:?I
|
|
& whl'(!I+1:~>20:?I&put$(hamming$!I " "))
|
|
& out$
|
|
& out$(hamming$1691)
|
|
& out$(hamming$1000000)
|
|
);
|