http://acm.hdu.edu.cn/showproblem.php?pid=2028
这道题计算n个数字的最小公倍数,我们可以从中选出最大的一个数,逐次加一,知道这个数处以所有n个数的余数都为零。
另外,也可以先用辗转相除法计算前两个数字的最小公倍数,再逐次加一~~
#include<iostream>
using namespace std;
int main(){
int n;
int a[100];
while(cin>>n){
for(int i=0;i<n;i++){
cin>>a[i];
}
int max=0;
for(int i=0;i<n;i++){
if(a[i]>max) max=a[i];
}
int lcm;
for(lcm=max;;lcm++){
int cont=0;
for(int i=0;i<n;i++){
if(lcm%a[i]!=0) break;
cont++;
}
if(cont==n) break;
}
cout<<lcm<<endl;
}
return 0;
}