nyoj 40 公約數和公倍數 輾轉相除法

2021-07-05 13:28:44 字數 634 閱讀 8331

時間限制:1000 ms  |  記憶體限制:65535 kb

難度:1

描述 小明被乙個問題給難住了,現在需要你幫幫忙。問題是:給出兩個正整數,求出它們的最大公約數和最小公倍數。

輸入 第一行輸入乙個整數n(0

輸出 輸出每組測試資料的最大公約數和最小公倍數

樣例輸入

3

6 612 11

33 22

樣例輸出

6    6

1    132

11   66

題目詳解:

用較小數除較大數,再用出現的餘數(第一餘數)去除除數,令除數做新的較大數,餘數做新的較小數,用新的較小數除較大數,如此反覆,直到最後餘數為0,最大公約數=最後的除數,最小公倍數=最初的兩數乘積/最大公約數

用輾轉相除法求最大公約數與最小公倍數時,如果最後的餘數=1,那麼這兩個數互質,最大公約數為1.

ac  code:

#includeint acd()

{ int n,i,j,k,temp;

scanf("%d",&n);

while(n--)

{ scanf("%d%d",&i,&j);

if(i

題目40 公約數和公倍數

小明被乙個問題給難住了,現在需要你幫幫忙。問題是 給出兩個正整數,求出它們的最大公約數和最小公倍數。第一行輸入乙個整數n 0輸出每組測試資料的最大公約數和最小公倍數 3 6 6 12 11 33 22 6 6 1 132 11 66 歐幾里得輾轉相除法,輸入a,b,設a b,ans a mod b ...

公約數和公倍數

描述 給出兩個正整數,求出它們的最大公約數和最小公倍數。輸入 第一行輸入乙個整數n 0 include int main u a b m 最小公倍數等於他們的乘機除以最大公約數 printf d d n m,u return 0 執行結果 附加相應知識點 1,最大公約數與最小公倍數的一般求法 將每個...

1183 公約數和公倍數

1183 公約數和公倍數 description 小明被乙個問題給難住了,現在需要你幫幫忙。問題是 給出兩個整數,求出他們的最大公約數和最小公倍數。input 第一行輸入乙個大於0的整數n n 20 表示有n組測試資料隨後的n行輸入兩個整數i,j i,j小於32767 output 輸出每組測試資料...