原题:http://acm.hdu.edu.cn/showproblem.php?pid=1019
思路:
这个题只是求最小公倍数,用欧几里得定理,先求两个数的最小公倍数,再依次求下去即可。
源代码:
#include <iostream> using namespace std; int LCM(int m,int n) { int dividend,divisor,r; dividend=m; divisor=n; r=dividend % divisor; while (r!=0) { dividend=divisor; divisor=r; r=dividend % divisor; } return m/divisor*n; } int main() { int N; cin>>N; for(int i=0;i<N;i++) { int M,a,b,result=0; cin>>M; cin>>b; result=LCM(b,1); for (int j=1;j<M;j++) { cin>>a; result=LCM(a,result); } cout<<result<<endl; } return 0; }