首页/技术开发/内容

刘徽《9章算术》中的勾股数

技术开发2024-06-13 阅读()
(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

第1页  第2页  第3页 

……

相关阅读