我编写了一个简单的 FORTRAN 代码来执行以下操作:假设我们必须得到具有公约数的整数 n1 和 n2。例如 3 和 6 都除以 3。这是代码
PROGRAM test
INTEGER i,n1,n2
WRITE(*,*)' Please enter two numbers: '
READ(*,*)n1,n2
DO i=2,10,1
IF(MOD(n1,i).EQ.0.AND.MOD(n2,i).EQ.0)THEN
n1=n1/i
n2=n2/i
ENDIF
n1=n1
n2=n2
ENDDO
WRITE(*,*)n1,n2
PAUSE
END
这适用于示例 (3,6)。但是,在某些情况下,例如 (4,8),数字具有多个公约数,在这种情况下为 2 和 4。另一个示例 (16,24)。我想计算两个数字的最大公约数,然后将它们减少(即 3,6 到 1 和 2),但代码返回第一个(4,8 返回到 2、4 而不是 1,2)。应该如何修改它以计算最大除数?
提前谢谢了!