1. 程式人生 > >【C/C++】求最大公約數的三種方法

【C/C++】求最大公約數的三種方法

一、最大公約數與最小公倍數

最大公約數,屬於數論所探究的內容。

最大公約數可以通過下面的三種方法求出來。

最小公倍數呢,它與最大公約數的乘機為所求數之積。

比如求  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;
}