多个最小公倍数的求解
在网上普遍都是用暴力算法,在一些比较大的数运算时时间可能比较久,所以用了GCD求LCM的方法,以循环的方法解出。这种方法可能还可以有所改进,改进方向是求公因数有些重复的地方,等以后探究!
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
#define N 3
int GCD(int n,int m)
{
if(n % m == 0)
return m;
else
return GCD(m , n % m);
}
int LCM(int n,int m)
{
if(n == 0 || m == 0)
return 0;
else
return n * m / GCD(n,m);
}
int main()
{
int a[N] = {0};int num = 0;
for(int i = 0;i < N;i ++)
cin>>a[i];
num = a[0];
for(int i = 0;i < N - 1;i ++)
num = LCM(num,a[i+1]);
cout<<"最小公倍数为:"<<num;
}