30 lines
630 B
Text
30 lines
630 B
Text
Int64 nTriples, nPrimitives, limit
|
||
|
||
F countTriples(Int64 =x, =y, =z)
|
||
L
|
||
V p = x + y + z
|
||
I p > :limit
|
||
R
|
||
|
||
:nPrimitives++
|
||
:nTriples += :limit I/ p
|
||
|
||
V t0 = x - 2 * y + 2 * z
|
||
V t1 = 2 * x - y + 2 * z
|
||
V t2 = t1 - y + z
|
||
countTriples(t0, t1, t2)
|
||
|
||
t0 += 4 * y
|
||
t1 += 2 * y
|
||
t2 += 4 * y
|
||
countTriples(t0, t1, t2)
|
||
|
||
z = t2 - 4 * x
|
||
y = t1 - 4 * x
|
||
x = t0 - 2 * x
|
||
|
||
L(p) 1..8
|
||
limit = Int64(10) ^ p
|
||
nTriples = nPrimitives = 0
|
||
countTriples(3, 4, 5)
|
||
print(‘Up to #11: #11 triples, #9 primitives.’.format(limit, nTriples, nPrimitives))
|