C語言求兩個數中最大公約數

2021-07-13 08:49:35 字數 862 閱讀 5471

在c語言中如何求兩個數的最大公約數呢?下面用三種方法進行求解。

方法一:窮舉法。

先比較兩個數的大小,然後找出較小數t,最後判斷t為何值時兩個數都能整除,此方法效率較低。

**如下:

#includeint main()

/*將較小值賦給num1*/

for(i=num1;i>0;i--)

return 0;

}

方法二:輾轉相減法。

輾轉相減法是用較大數減去較小數,再比較減數和差的大小,用較大數減去較小數,如此不斷迴圈,直到兩數相減為0停止,則最大公約數就求出來了。

**如下:

#includeint main()

printf("%d",b);

return 0;

}

方法三:輾轉相除法。

輾轉相除法求兩個數的最大公約數的步驟如下:

先用小的乙個數除大的乙個數,

得第乙個餘數;

再用第乙個餘數除小的乙個數,

得第二個餘數;

又用第二個餘數除第乙個餘數,

得第三個餘數;

這樣逐次用後乙個數去除前乙個餘數,

直到餘數是0為止

.那麼,最後乙個除數就是所求的最大公約數(如果最後的除數是

1,那麼原來的兩個數是互質數。)

**如下:

#includeint main()

{      int num1,num2,temp;

scanf("%d%d",&num1,&num2);

/*不需要判斷兩個數的大小,當num1最小公倍數求法:要求的兩個數相乘除以最大公約數就是兩個數的最小公倍數。

求兩個數最大公約數

題目 寫乙個程式,求兩個正數的最大公約數。如1100100210001,120200021,求其最大公約數 分析 設兩個數分別為x,y 求其最大公約數f x,y 如果有x 2 0而y 2不等於0,那麼可以 約簡為f x 2,y 同樣道理適用於y 如果x與y都是偶數,那麼最大公約數可以為f x 2,y...

C語言 求兩個數的最大公約數

求兩個數的最大公約數。最大公約數定義 如果a,b是非零整數,而整數q同時是a,b的因數,我們便把q叫做a,b的公因數。顯然,q的絕對值必然不大於a,b的絕對值的最小者,即 q min 上式表明,兩個非零整數的公因數必只有有限多個,於是,其中一定存在乙個最大的。我們把a,b的所有公因數中最大的乙個公因...

求兩個數的最大公約數

求公約數有多種方法,在這主要介紹兩種方法。1 更相減損之術 以兩數中較大的數減去較小的數,獲得的差與原先較小的數構成新的一對數,在以大的數減去小的數,依次迴圈。用同樣的方法操作,直至產生一對相等的數為止,該數即為最大公約數。include include intmain while n 0 if a...