(X+Y)
如果按照此定理编写出源程序当然是可以的。但对不了解此定理的读者这样编写就比较困难。所以这里使用一般的方法。首先设法得到从3到100之间的数的两组合。利用二重循环可以达到这一目的。令外循环变量为A,A从1到99。令内循环的循环变量为B,B从A+1到100。然后在循环体内判断A和B是否满足等式(1)。
将满足等式的A和B及C打印出来。为了缩短机器运算时间,我们可以利用勾股数的奇偶特性。即在A和B中一个是奇数,另一个必定是偶数。那么可以让B从A+1开始,每次增加步长为2。因为A若是奇数,A+1就是偶数。以后步长是2,B总是为偶数。如果A是偶数,A+1就是奇数。以后步长是2,B总为奇数。我们用整形变量I、J、L分别代表A、B、C
FORTRON源程序:
WRITE(*,30)
DO 10 I=3,99
K=I+1
DO 10 J=K,100,2
S=I*I+J*J
S=SQRT(S)
L=S
IF(L.GT.100.OR.ABS(S-L).GT.0.1E-06) GOTO 10
WRITE(*,20)I,J,L
10 CONTINUE
20 FORMAT(2IX,3I5)
30 FORMAT(25X,’A B C ‘/20X,’--------------------’)
END
BASIC源程序
10 PRINT "A B C"
20 PRINT "--------------------------------"
30 FOR I = 3 TO 99
40 K = I + 1
45 FOR J = K TO 100
50 S = I * I + J * J
60 S = SQR(S)
70 L = INT(S)
80 IF L >= 100 OR L <> S THEN 100
90 PRINT I, J, L
100 NEXT J
110 NEXT I
……