26 lines
689 B
Text
26 lines
689 B
Text
int Total, Prim, MaxPeri;
|
|
|
|
proc NewTri(S0, S1, S2);
|
|
int S0, S1, S2, P;
|
|
[P:= S0 + S1 + S2;
|
|
if P <= MaxPeri then
|
|
[Prim:= Prim+1;
|
|
Total:= Total + MaxPeri/P;
|
|
NewTri(+1*S0-2*S1+2*S2, +2*S0-1*S1+2*S2, +2*S0-2*S1+3*S2);
|
|
NewTri(+1*S0+2*S1+2*S2, +2*S0+1*S1+2*S2, +2*S0+2*S1+3*S2);
|
|
NewTri(-1*S0+2*S1+2*S2, -2*S0+1*S1+2*S2, -2*S0+2*S1+3*S2);
|
|
];
|
|
];
|
|
|
|
[MaxPeri:= 10;
|
|
while MaxPeri <= 100_000_000 do
|
|
[Prim:= 0;
|
|
Total:= 0;
|
|
NewTri(3, 4, 5);
|
|
Format(10, 0);
|
|
Text(0, "Up to"); RlOut(0, float(MaxPeri)); Text(0, ":");
|
|
RlOut(0, float(Total)); Text(0, " triples,");
|
|
RlOut(0, float(Prim)); Text(0, " primitives.^m^j");
|
|
MaxPeri:= MaxPeri*10;
|
|
];
|
|
]
|