在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...