最大公约数是指两个数相同因子总最大的那个,比如35和42,最大公倍数是7。要求最大公倍数,最常用的算法是辗转相除法,详见下面的代码;
最小公倍数是指两个数共有的倍数中最小的那个,比如35和42,最小公倍数是210,6和12,最小公倍数是12。两个数如果有最大公约数的话,他们的最小公倍数就是他们的乘积处以他们的最大公约数,如果没有最大公约数,那他们的最小公倍数就是他们的乘积。
#include <stdio.h>
#include<math.h>
int main()
{
int a,b,m,n,temp;//a为最小公倍数,b为最大公约数
//m,n是输入的两个数.
scanf("%d %d",&m,&n);//输入两个数
if(m<n)
{
temp=m;
m=n;
n=temp;
}
a=m*n;
while(n!=0)
{
temp=m%n;
m=n;
n=temp;
}
b=m;
a=a/b;
printf("最大公约数:%d\n",b);
printf("最小公倍数:%d\n",a);
return 0;
}