我編寫了一個簡單的FORTRAN代碼,以執行以下操作:假設我們必須具有共同除數的整數n1和n2。例如3和6都除以3.這裏是代碼在DO循環內繼續搜索
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)。如何修改以計算最大除數?
非常感謝提前!
[Euclid算法](http://en.wikipedia.org/wiki/Euclidean_algorithm)怎麼樣? – Stefan
@Stefan這怎麼可能被合併到我的簡單代碼?有什麼建議麼? –