28 lines
589 B
Plaintext
28 lines
589 B
Plaintext
F partitions(n)
|
||
V p = [BigInt(1)] [+] [BigInt(0)] * n
|
||
L(i) 1 .. n
|
||
V k = 0
|
||
L
|
||
k++
|
||
V j = (k * (3 * k - 1)) I/ 2
|
||
I j > i
|
||
L.break
|
||
I k [&] 1
|
||
p[i] += p[i - j]
|
||
E
|
||
p[i] -= p[i - j]
|
||
j = (k * (3 * k + 1)) I/ 2
|
||
I j > i
|
||
L.break
|
||
I k [&] 1
|
||
p[i] += p[i - j]
|
||
E
|
||
p[i] -= p[i - j]
|
||
R p[n]
|
||
|
||
print(‘Partitions: ’(0.<15).map(x -> partitions(x)))
|
||
|
||
V start = time:perf_counter()
|
||
print(partitions(6666))
|
||
print(time:perf_counter() - start)
|