天天看點

輾轉相除法(求最大公約數,最小公倍數)

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/*求最大公約數*/
int gcd(int x,int y)
{int b;int c,t;
b=x>y?x:y;//如果x>y ,有b=x ,否則b=y
c=x<y?x:y;
while(b%c!=0)
{
	t=c;/*保留除數,作為下一次的被除數*/
	c=b%c;//取餘	
	b=t;//将前一次的被除數當作後一次的除數
}
return c;
}
/*求最小公倍數*/
int lcm(int x,int y)
{
	int GCD,LCM;
	GCD=gcd(x,y);
	LCM=(x/GCD)*(y/GCD)*GCD;
	return LCM;
}
int main()
{int a;int b;
scanf("%d",&a);
scanf("%d",&b);
printf("gcd(%d,%d)=%d\n",a,b,gcd(a,b));
printf("lcm(%d,%d)=%d\n",a,b,lcm(a,b));
return 0;
}
           
輾轉相除法(求最大公約數,最小公倍數)