求两个数m和n的最大公约数和最小公倍数
//遍历
int com_div(int a,int b)
{
int i=1;
int max=0;
for(i=1;i<=a;i++)
{
if(a%i==0&&b%i==0)
{
while(i>max)
{
max=i;
}
}
}
return max;
}
//辗转相除法
int com_div1(int a,int b)
{
int r;
while((r=a%b)!=0)
{
a=b;
b=r;
}
return b;
}
int main()
{
printf("%d\n",com_div(20,15));
printf("%d\n",com_div(12,16));
printf("%d\n",com_div(9,18));
printf("%d\n",com_div1(20,15));
printf("%d\n",com_div1(12,16));
printf("%d\n",com_div1(9,18));
return 0;
}
//最小公倍数
int com_mul(int m,int n)
{
int r;
int a=m;
int b=n;
int sum=1;
while((r=m%n)!=0)
{
m=n;
n=r;
}
a=a/n;
b=b/n;
sum=n*a*b;
return ;
}