Special pythagorean triplet: Difference between revisions
Content added Content deleted
(→{{header|ALGOL 68}}: Remove possibly invalid optimisation) |
(→{{header|PL/M}}: Minor tweak) |
||
Line 268: | Line 268: | ||
DO N = 1 TO SQRT$1000; |
DO N = 1 TO SQRT$1000; |
||
DO M = N + 1 TO SQRT$1000; |
DO M = N + 1 TO SQRT$1000; |
||
/* |
/* NOTE: A = M2 - N2, B = 2MN, C = M2 + N2 */ |
||
/* A, B AND C: A = M2 - N2, B = 2MN, C = M2 + N2 TO CALCULATE */ |
|||
/* A + B + C = M2 - N2 + 2MN + M2 + N2 = 2( M2 + MN ) = 2M( M + N )*/ |
/* A + B + C = M2 - N2 + 2MN + M2 + N2 = 2( M2 + MN ) = 2M( M + N )*/ |
||
IF ( M * ( M + N ) ) = 500 THEN DO; |
IF ( M * ( M + N ) ) = 500 THEN DO; |
||
M2 = M * M; |
M2 = M * M; |
||
N2 = N * N; |
N2 = N * N; |
||
CALL SET$LONG$INTEGER( .A, M2 - N2 ); |
|||
CALL SET$LONG$INTEGER( .B, 2 * M * N ); |
|||
CALL SET$LONG$INTEGER( .C, M2 + N2 ); |
|||
CALL |
CALL LONG$MULTIPLY( .A, .B, .ABC ); |
||
CALL |
CALL LONG$MULTIPLY( .ABC, .C, .ABC ); |
||
CALL SET$LONG$INTEGER( .LC, C ); |
|||
CALL LONG$MULTIPLY( .LA, .LB, .ABC ); |
|||
CALL LONG$MULTIPLY( .ABC, .LC, .ABC ); |
|||
CALL PRINT$LONG$INTEGER( .ABC ); |
CALL PRINT$LONG$INTEGER( .ABC ); |
||
CALL PRINT$NL; |
CALL PRINT$NL; |