Lowest Common Multiple Plus
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 21513 Accepted Submission(s): 8741
Problem Description
求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6 3 2 5 7
Sample Output
12 70唉,没什么好感悟的,是_int64 帮我AC的!#include<iostream> using namespace std; void swap(_int64 &a,_int64 &b){ if(a>b){ a=a+b; b=a-b; a=a-b; } } int GCD(_int64 a,_int64 b){ if(a%b==0) return b; else return GCD(b,a%b); } int LCM(_int64 a,_int64 b){ int tmplcm; tmplcm=a*b/GCD(a,b); return tmplcm; } int main(){ int n,i; _int64 a[10000]; while(cin>>n){ cin>>a[0]; for(i=1;i<n;i++){ cin>>a[i]; swap(a[i-1],a[i]); a[i]=LCM(a[i-1],a[i]); } cout<<a[i-1]<<endl; } return 0; }