1. 程式人生 > >C語言求兩個數的最大公約數和最小公倍數

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

輾轉相除法, 又名歐幾里德演算法(Euclidean algorithm),是求最大公約數的一種方法。它的具體做法是:用較小數除較大數,再用出現的餘數(第一餘數)去除除數,再用出現的餘數(第二餘數)去除第一餘數,如此反覆,直到最後餘數是0為止。如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數的最大公約數。 最小公倍數等於兩數之積除以其最大公約數

#include <stdio.h>
int Gcd(int a,int b)

{	int i,t;
   if(a<=0||b<=0)  
	return -1;
	t=a<b?a:b;
	for(i=t;i>0;i--)
	{if(a%i==0&&b%i==0)return i;}
	return 1;
}
int lcm(int a,int b)
{
int lcm;
lcm=a*b/Gcd(a,b);//最小公倍數等於兩數之積除以其最大公約數
return lcm;
}
void main(){
	int a,b;
	printf("請輸入兩個正整數:");
	scanf("%d %d",&a,&b);
	printf("兩個正整數的最大公約數為%d,最小公倍數為%d。\n",Gcd(a,b),lcm(a,b));
	system("pause");

}