Special pythagorean triplet: Difference between revisions
Content added Content deleted
(→{{header|PL/M}}: Remove redundant test and slight simplification) |
m (→{{header|ALGOL 68}}: Remove test for solution found) |
||
Line 11: | Line 11: | ||
# a + b + c = 1000, a2 + b2 = c2, a < b < c # |
# a + b + c = 1000, a2 + b2 = c2, a < b < c # |
||
INT sqrt 1000 = ENTIER sqrt( 1000 ); |
INT sqrt 1000 = ENTIER sqrt( 1000 ); |
||
FOR n TO sqrt 1000 OVER 2 DO |
|||
FOR m FROM n + 1 TO sqrt 1000 DO |
|||
FOR m FROM n + 1 TO sqrt 1000 WHILE NOT found DO |
|||
# a = m^2 - n^2, b = 2mn, c = m^2 + n^2 ( Euclid's formula ), so # |
# a = m^2 - n^2, b = 2mn, c = m^2 + n^2 ( Euclid's formula ), so # |
||
# a + b + c = m^2 - n^2 + 2mn + m^2 + n^2 = 2( m^2 + mn ) = 2m( m + n ) # |
# a + b + c = m^2 - n^2 + 2mn + m^2 + n^2 = 2( m^2 + mn ) = 2m( m + n ) # |
||
Line 22: | Line 21: | ||
INT c = m2 + n2; |
INT c = m2 + n2; |
||
print( ( "a = ", whole( a, 0 ), ", b = ", whole( b, 0 ), ", c = ", whole( c, 0 ), newline ) ); |
print( ( "a = ", whole( a, 0 ), ", b = ", whole( b, 0 ), ", c = ", whole( c, 0 ), newline ) ); |
||
print( ( "a * b * c = ", whole( a * b * c, 0 ), newline ) ) |
print( ( "a * b * c = ", whole( a * b * c, 0 ), newline ) ) |
||
found := TRUE |
|||
FI |
FI |
||
OD |
OD |