Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
22
Task/Hamming-numbers/Picat/hamming-numbers.picat
Normal file
22
Task/Hamming-numbers/Picat/hamming-numbers.picat
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
go =>
|
||||
println([hamming(I) : I in 1..20]),
|
||||
time(println(hamming_1691=hamming(1691))),
|
||||
time(println(hamming_1000000=hamming(1000000))),
|
||||
nl.
|
||||
|
||||
hamming(1) = 1.
|
||||
hamming(2) = 2.
|
||||
hamming(3) = 3.
|
||||
hamming(N) = Hamming =>
|
||||
A = new_array(N),
|
||||
[Next2, Next3, Next5] = [2,3,5],
|
||||
A[1] := Next2, A[2] := Next3, A[3] := Next5,
|
||||
I = 0, J = 0, K = 0, M = 1,
|
||||
while (M < N)
|
||||
A[M] := min([Next2,Next3,Next5]),
|
||||
if A[M] == Next2 then I := I+1, Next2 := 2*A[I] end,
|
||||
if A[M] == Next3 then J := J+1, Next3 := 3*A[J] end,
|
||||
if A[M] == Next5 then K := K+1, Next5 := 5*A[K] end,
|
||||
M := M + 1
|
||||
end,
|
||||
Hamming = A[N-1].
|
||||
Loading…
Add table
Add a link
Reference in a new issue