32 lines
788 B
Plaintext
32 lines
788 B
Plaintext
MODULE PyTriple64 EXPORTS Main;
|
|
|
|
IMPORT IO, Fmt;
|
|
|
|
VAR tcnt, pcnt, max, i: INTEGER;
|
|
|
|
PROCEDURE NewTriangle(a, b, c: INTEGER; VAR tcount, pcount: INTEGER) =
|
|
VAR perim := a + b + c;
|
|
BEGIN
|
|
IF perim <= max THEN
|
|
pcount := pcount + 1;
|
|
tcount := tcount + max DIV perim;
|
|
NewTriangle(a-2*b+2*c, 2*a-b+2*c, 2*a-2*b+3*c, tcount, pcount);
|
|
NewTriangle(a+2*b+2*c, 2*a+b+2*c, 2*a+2*b+3*c, tcount, pcount);
|
|
NewTriangle(2*b+2*c-a, b+2*c-2*a, 2*b+3*c-2*a, tcount, pcount);
|
|
END;
|
|
END NewTriangle;
|
|
|
|
BEGIN
|
|
i := 100;
|
|
|
|
REPEAT
|
|
max := i;
|
|
tcnt := 0;
|
|
pcnt := 0;
|
|
NewTriangle(3, 4, 5, tcnt, pcnt);
|
|
IO.Put(Fmt.Int(i) & ": " & Fmt.Int(tcnt) & " Triples, " &
|
|
Fmt.Int(pcnt) & " Primitives\n");
|
|
i := i * 10;
|
|
UNTIL i = 10000000;
|
|
END PyTriple64.
|