HDU-1019 Least Common Multiple

http://acm.hdu.edu.cn/showproblem.php?pid=1019

Least Common Multiple

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

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 int gb(long m,long n)
{
    if(m>0&&n>0)
    {
        long a,b,r;
        if(n>m)
        {
            r=m;
            m=n;
            n=r;
        }
        a=m;
        b=n;
        while(r!=0)
        {
            r=a%b;
            a=b;
            b=r;
        }
        return m/a*n;
    }
    else
        return 0;
}
int main()
{
    int i,n,a,b,t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        scanf("%d",&a);
        for(i=1;i<n;i++)
        {
            scanf("%d",&b);
            a=gb(a,b);
        }
        printf("%d\n",a);
    }
}
#include"stdio.h"
int mcm( long x, long y)                  
{
     long  t;
    while(y)
    {
        t=x%y;
        x=y;
        y=t;
    }
    return x;
}
int main()
{
     long  n,m;
     long  x,y,t1;
    while(scanf("%lld",&n)!=EOF)
    {
        while(n--)
        {
            scanf("%ld",&m);
            scanf("%ld",&x);
            
            while(--m)
            {
                scanf("%ld",&y);  
                t1=mcm(x,y);
                x=x*y/t1;              
            }
            printf("%ld\n",x);    
        }
    }
    return 0;
}
            

 

posted @ 2013-11-19 15:24  疯狂的癫子  阅读(216)  评论(0编辑  收藏  举报