列举法
从小到大先找出8的倍数,再判断这个数是否是20的倍数,从中找出最小的、公共的一个。
考察:8,16,24,32,…….
分解质因数法
分别把两个数分解质因数,8和20公倍数里,应当既包含8的所有质因数,又包含20的所
有质因数。对于两个数共有的质因数,比如2,在8中出现3次,在20中出现2次,则取3;
再把独有的质因数都取出来,把它们相乘,积就是最小公倍数,具体做法如下:
8 =2×2×2
20=2×2×5
8和10的最小公倍数是:2×2×2×5=40
代码如下:
#include<iostream>
using namespace std;
int main(){
//列举法
int a = 8, b = 10;
// int k = a;
// int i = 1;
// while(k%b!=0){
// k=i*a;
// i++;
// }
// cout<<k;
//分解质因数法算法
int i = 0, c = max(a,b);
int p[i];
int k;
int lcm = 1;
for(k=2; k<=c; k++){
while(a%k==0&&b%k==0){
p[i] = k;
a/=k;b/=k;i++;
}
while(a%k==0){
p[i] = k;
a/=k;i++;
}
while(b%k==0){
p[i] = k;
b/=k;i++;
}
}
for(int j=0;j<i;j++){
lcm*=p[j];
}
cout<<lcm;
return 0;
}