Problem Description
求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6 3 2 5 7
Sample Output
1270#include<iostream> #include<algorithm> using namespace std; int bs(int a,int b) //找出最大公约数的函数 找出并返回最大公约数 { long long temp,x; if(a<b) { x=a; a=b; b=x; } while(a%b!=0) { temp=a%b; a=b; b=temp; } return (b); } int main() { int n; while(cin>>n) { long long i,j,k,t=1,max,a[1000]; for(j=0;j<n;j++) cin>>a[j]; sort(a,a+n); //排序 max=a[n-1]; for(j=0;j<n;j++) { i=bs(max,a[j]); //找出两个之间的最大公约数 max=max*a[j]/i; //两个数的最小公倍数 就循环找出公约数和公倍数。 } cout<<max<<endl;; } return 0; }