杭电acm2028

 

 

 

 

Lowest Common Multiple Plus

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

Problem Description
求n个数的最小公倍数。
 

 

Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
 

 

Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
 

 

Sample Input
2 4 6 3 2 5 7
 

 

Sample Output
12 70
 

 

 

 

 

 

 

 

 

#include<stdio.h>
int fun(int k,int a)
{
    int t,kk,aa,tt;
    kk=k;aa=a;
    if(k>a){t=k;k=a;a=t;}
    while(t>0)
    {
           t=a%k;a=k;k=t;
    }
    tt=aa/a*kk;*********************************(tt=aa*kk/a会超int范围)
    return tt;
}
int main()
{
    int n,k,i,a;
    while(scanf("%d",&n)!=EOF)
    {
         k=1;
         for(i=0;i<n;i++)
         {
               scanf("%d",&a);
               k=fun(k,a);
         }
         printf("%d\n",k);
    }
}

posted @ 2013-03-27 00:58  《 》  阅读(142)  评论(0编辑  收藏  举报