1,题目描述:输入两个整数,计算两个整数的最小公倍数,并打印。
2,解题思路:
1)明确概念:最小公倍数是指两个或多个整数共有倍数中最小的一个。
2)思路:
a.公倍数一定大于这两个整数,我们可以从这两个整数中的较大值开始尝试。
b.从小到大依次判断能否同时整除这两个数,若某个数可以同时被这两个书整除,则该数为公倍数。
c.第一个找到的数就为最小公倍数。
注意:最小公倍数可以由两数乘积(需要在原始两个整数还未发生改变时,设定另一个变量来存放)两数的最大公约数求得。
方法一:辗转相除法
#include <stdio.h>
int main()
{
int m,n;
scanf("%d %d",&m,&n);
int temp=m*n;
while(int k=m%n)
{
m=n;
n=k;
}
printf("%d",temp/n);
return 0;
}
运行结果:
方法二:试除法
#include <stdio.h>
int main()
{
int m=0,n=0;
scanf("%d %d",&m,&n);
int k=(m>n?m:n);
while(1)
{
//若k同时被两数整除,则k为公倍数,并且此时是最小公倍数
if(k%m==0&&k%n==0)
{
printf("%d\n",k);
break;
}
k++;
}
return 0;
}
运行结果:注意:以上编译环境均为Dev-c++。
若有错误,希望各位朋友可以同我一起交流!