20 lines
549 B
Text
20 lines
549 B
Text
atom total, prim, maxPeri = 10
|
|
|
|
procedure tri(atom s0, s1, s2)
|
|
atom p = s0 + s1 + s2
|
|
if p<=maxPeri then
|
|
prim += 1
|
|
total += floor(maxPeri/p)
|
|
tri( s0+2*(-s1+s2), 2*( s0+s2)-s1, 2*( s0-s1+s2)+s2);
|
|
tri( s0+2*( s1+s2), 2*( s0+s2)+s1, 2*( s0+s1+s2)+s2);
|
|
tri(-s0+2*( s1+s2), 2*(-s0+s2)+s1, 2*(-s0+s1+s2)+s2);
|
|
end if
|
|
end procedure
|
|
|
|
while maxPeri<=1e8 do
|
|
prim := 0;
|
|
total := 0;
|
|
tri(3, 4, 5);
|
|
printf(1,"Up to %d: %d triples, %d primitives.\n", {maxPeri,total,prim})
|
|
maxPeri *= 10;
|
|
end while
|