求两个数的最大公约数的方法有很多,我现在采用的是辗转相除法
求两个数的最大公倍数的方法就是用这两个数的乘积除以它们的最大公约数
#include<stdio.h>
int GCD(int a,int b)
{
int temp;
if(a<b)//交换最大的数放在a中
{
temp=a;
a=b;
b=temp;
}
while(b!=0)
{ //辗转相除法求最大公约数
temp=a%b;
a=b;
b=temp;
}
return a;
}
int LCM(int a,int b,int n)
{
return (a*b/n);//两数的乘积除以两数的最大公约数就是两数的最小公倍数
}
void main()
{
int a,b,n,k;
printf("请输任意两个数\n");
while((scanf("%d %d",&a,&b))==2)
{
n=GCD(a,b);
printf("(%d %d)=%d\n",a,b,n);
k=LCM(a,b,n);
printf("[%d %d]=%d\n",a,b,k);
printf("请输入任意两位数\n");
}
}