您的位置:首页 > 其它

HDU 1019(A)GCD

2016-01-28 11:33 281 查看
A - A
Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d
& %I64u
Submit Status

Description

The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbers in the set. For example, the LCM of 5, 7 and 15 is 105. 

 

Input

Input will consist of multiple problem instances. The first line of the input will contain a single integer indicating the number of problem instances. Each instance will consist of a single line of the form m n1 n2 n3 ... nm where
m is the number of integers in the set and n1 ... nm are the integers. All integers will be positive and lie within the range of a 32-bit integer. 

 

Output

For each problem instance, output a single line containing the corresponding LCM. All results will lie in the range of a 32-bit integer. 

 

Sample Input

2
3 5 7 15
6 4 10296 936 1287 792 1

 

Sample Output

105
10296

 

题意:求N个数字的最小公倍数

题解:由性质:GCD*LCM=N*M,则不断求他们的最大公约数就可以了

#include <set>
#include <map>
#include <list>
#include <cmath>
#include <queue>
#include <vector>
#include <cstdio>
#include <string>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <sstream>
#include <algorithm>
#define LL long long
#define N 100000
using namespace std;
LL gcd(LL a,LL b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
#ifdef CDZSC
freopen("i.txt","r",stdin);
#endif
int n,t;
LL x;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
LL ans=1;
while(n--)
{
scanf("%lld",&x);
LL tmp=gcd(x,ans);
ans=(ans*x)/tmp;
}
printf("%lld\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: