您的位置:首页 > 编程语言 > PHP开发

hdoj1019 Least Common Multiple(多个数求最小公倍数)

2011-05-15 17:41 531 查看

Least Common Multiple

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 10917    Accepted Submission(s): 3935


Problem 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

 
#include<stdio.h>
long LCM(long p1,long p2)//求最小公倍数
{
long n1=p1,n2=p2;
if(n1<n2)
{
long t=n1;
n1=n2;
n2=t;
}
long m=n1%n2;
while(m!=0)
{
n1=n2;
n2=m;
m=n1%n2;
}
return p1/n2*p2;//不容易溢出
}
int main()
{
long t,n;
scanf("%ld",&t);
while(t--)
{
long a=1,b=1;
scanf("%ld",&n);
while(n--)
{
scanf("%ld",&a);
b=LCM(a,b);
}
printf("%ld/n",b);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息