25 lines
701 B
Text
25 lines
701 B
Text
local sc = os.clock()
|
|
local total = 0
|
|
local prim = 0
|
|
local max_peri = 0
|
|
|
|
local function new_tri(s0, s1, s2)
|
|
local p = s0 + s1 + s2
|
|
if p <= max_peri then
|
|
prim += 1
|
|
total += max_peri // p
|
|
new_tri( 1*s0 - 2*s1 + 2*s2, 2*s0 - 1*s1 + 2*s2, 2*s0 - 2*s1 + 3*s2)
|
|
new_tri( 1*s0 + 2*s1 + 2*s2, 2*s0 + 1*s1 + 2*s2, 2*s0 + 2*s1 + 3*s2)
|
|
new_tri(-1*s0 + 2*s1 + 2*s2, -2*s0 + 1*s1 + 2*s2, -2*s0 + 2*s1 + 3*s2)
|
|
end
|
|
end
|
|
|
|
max_peri = 100
|
|
while max_peri <= 1e10 do
|
|
prim = 0
|
|
total = 0
|
|
new_tri(3, 4, 5)
|
|
local secs = math.round(os.clock() - sc)
|
|
print($"Up to {max_peri}: {total} triples, {prim} primitives, {secs} seconds")
|
|
max_peri *= 10
|
|
end
|