给定两个正整数,计算这两个数的最小公倍数。
10 14
70
关于最小公倍数问题,其实如果会最大公约数了,那么最小公倍数也就没啥难度了,因为最小公倍数的算法就是a/gcd(a,b)*b(gcd即最大公约数),这里其实采用了先除再乘的方法,其实是为了防止数太大溢出那种情况,不过还是非常一般的方法,不过新手非常适合理解,话不多说,代码如下:
#include<stdio.h>
int gcd(int a,int b)
{
if(a<b)
{
int t;
t=a;
a=b;
b=t;
}
while(b!=0)
{
int tem=b;
b=a%b;
a=tem;
}
return a;
}
main()
{
int m,n;
while(scanf("%d%d",&m,&n)!=EOF)
{
int k=gcd(m,n);
printf("%d\n",m*n/k);
}
}