請寫一個程式求出2個數的GCD(最大公因數)
.
Input and Output
輸入包含好幾筆資料,每筆資料一行,包含2個整數a,b。(0<a,b<10000000)
0 0代表輸入結束。
對每行輸入,輸出這2個數的GCD
.
Sample Input
12 36
25 24
0 0
Sample Output
GCD(12,36)=12
GCD(25,24)=1
解法:
此題為最大公因數的求法,運用輾轉相除法的原理來做
Ex1:
12 ” 36
36
———
12 0
Ex2: x y
50 ” 17 — 50 mod 17 = 16
34
———
16 ” 17 — 17 mod 16 = 1
16
———
16 ” 1 — 16 mod 1 = 0
16
——— ‘此時 x mod y = 0,y為最大公因數
0
.
.
程式碼:(VB6)
Private Sub Form_Load()
ifile = App.Path & "test.txt"
ofile = App.Path & "result.txt"
Open ifile For Input As #1
Open ofile For Output As #2
Do Until EOF(1)
Input #1, x
Input #1, y
a = x
b = y
If x = 0 And y = 0 Then
End
End If
While x Mod y <> 0
z = x Mod y
x = y
y = z
End While
Print #2, "GCD(" & a & "," & b & ")=" & Trim(y)
Loop
Close()
End
End Sub