#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int gcd(int x,int y)
{
int dividend,divisor,tmp;
dividend=x>y? x:y;//将最大的作为被除数
divisor=x<y?x:y;//将最小的作为除数
while(dividend%divisor!=0)
{
tmp=divisor;
divisor=dividend%divisor;
dividend=tmp;
}
return divisor;
}
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,b;
printf("求两个数的最大公约数和最小公倍数的程序\n\n");
printf("请先分别输入两个正整数a和b\n");
printf("a=");scanf("%d",&a);
printf("b=");scanf("%d",&b);
if((a<=0)||(b<=0))
{
printf("a=%d,b=%d\n",a,b);
printf("请输入大于0的整数!\n");
exit(-1);
}
printf("解:\nGCD( %d,%d)=%d\n",a,b,gcd(a,b));
printf("LCM( %d,%d)= %d\n",a,b,lcm(a,b));
return 0;
}