给定两个正整数,计算这两个数的最小公倍数

给定两个正整数,计算这两个数的最小公倍数。

输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数。

对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。

如果大数是小数的整倍数,最小公倍数就是大数;如果大数不是小数的整倍数,将两个数分别分解因数,标记公共的因数,把两个数的因数相乘,公共的因数只乘一次,就可以了。




例如:




6和36,36是6的整倍数,两个数的最小公倍数是36。




12和18




12=6×2 18=6×3 有公共的因数6




将两个数的因数相乘,6×2×6×3,公共的因数是6,只计算一次,划掉一个6,变成6×2×3=36 。最小公倍数是36。

扩展资料

1、两个数的最大公因数的求法:

(1)、列举法:是把两个数的所有因数都写出来,通观察、对比,最大的那个共有因数就是最大公因数。

(2)、分解质因数法:就是将两个数各自分解成质因数的形式,把公因数相乘就可以得出最大公因数。

(3)特殊情况

①两个数成倍数关系的:如果较大的数是较小的数的倍数,那么较小的数就是这两个数的最大公因数。

②两个数是互质关系的:如果两个数是互质数,那么这两个数的最大公因数就是1。

2、两个数最小公倍数的求法:

(1)列举法(这种方法一般用于较小的两个数或初学者):就是将这两个数的倍数都按次序列举,直到首次出现相同倍数为止,这个数就是最小公倍数。

(2)分解质因数法:就是将两个数各自分解成质因数的形式,把公因数只乘一遍,其他因数都乘上所得的积就是两数的最小公倍数。

(3)先求最大公约数法:利用:最大公约数×最小公倍数=两数相乘的积的关系来求得。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-06
#include "stdio.h"
int main(void){
int a,b,t;
printf("Input a & b(int 0<a,b<1001)...\n");
while(1){
if(scanf("%d%d",&a,&b)>0 && a>0 && a<1001 && b>0 && b<1001){
if(a>(t=b))
t=a,a=b,b=t;
while(b%a) b+=t;
}
else break;
printf("The LCM is %d\n",b);
}
return 0;
}本回答被网友采纳
相似回答