Problem Description
求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6 3 2 5 7
Sample Output
12 70
1 #include <cstdio> 2 int gys(int a,int b) 3 { 4 if(b==0) 5 return a; 6 else 7 return gys(b,a%b); 8 } 9 int lcm(int a,int b) 10 { 11 if(a>b) return b*(a/gys(a,b)); 12 else return b*(a/gys(b,a)); 13 } 14 int main() 15 { 16 int n,a,b; 17 while(~scanf("%d",&n)) 18 { 19 scanf("%d",&a); 20 for(int i=1;i<n;i++) 21 { 22 scanf("%d",&b); 23 a=lcm(a,b); 24 } 25 printf("%d ",a); 26 } 27 return 0; 28 }