(TOJ1070)Least Common Multiple

描述

求n个数的最小公倍数。

输入

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

输出

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

样例输入

2 4 6

3 2 5 7

样例输出

12

70

 1 #include<stdio.h>

 2 #include<math.h>

 3 #include<string.h>

 4 #include<ctype.h>

 5 

 6 int a[1000];

 7 

 8 int gcd(int x,int y) //计算两个数的最大公约数

 9 {

10     while(x>y?(x%=y):(y%=x));

11     return x+y;

12 }

13 void solve()

14 {

15     int i,n;

16     __int64 sum;

17     while(scanf("%d",&n)!=EOF)

18     {

19       for(i=0; i<n; i++) scanf("%d",&a[i]);

20       sum=a[0];

21       for(i=1;i<n;i++) sum=sum*(a[i]/gcd(a[i],sum));

22       printf("%I64d\n",sum);

23     }

24 }

25 

26 

27 int main()

28 {

29     solve();

32     return 0;

33 }
 
  
 

你可能感兴趣的:(com)