【C/C++】求最大公約數的三種方法
阿新 • • 發佈:2018-12-13
一、最大公約數與最小公倍數
最大公約數,屬於數論所探究的內容。
最大公約數可以通過下面的三種方法求出來。
最小公倍數呢,它與最大公約數的乘機為所求數之積。
比如求 x,y的最大公約數和最小公倍數
記住這個公式: x*y=最小公倍數*最大公約數
二、求最大公約數的三種方法
①輾轉相除法
演算法流程圖
int measure(int x, int y)
{
int z = y;
while(x%y!=0)
{
z = x%y;
x = y;
y = z;
}
return z;
}
執行結果:
②輾轉相減法
int measure(int a,int b) { while(a != b) { if(a>b) { a = a - b; } else { b = b - a; } } return a; }
執行結果:
③窮舉法
流程圖
int measure(int x,int y)
{
int temp = 0;
for(temp = x ; ; temp-- )
{
if(x%temp == 0 && y%temp==0)
break;
}
return temp;
}