hdu 1019 Least Common Multiple
求最小公倍数
先说两个说最小公倍数,a和b的最小公倍数可以用a和b的最大公约数来求,lcm(a,b)=a/gcd(a,b)*b,这里要注意一点是先除后乘防止溢出
推广到多个数也是一样的
1 #include<stdio.h>
2 int gcd(int a, int b)
3 {
4 return b==0?a:gcd(b,a%b);
5 }
6 int main()
7 {
8 int m,n,a,b,gcm;
9 scanf("%d", &m);
10 while(m--)
11 {
12 scanf("%d", &n);
13 a=b=1;
14 while(n--)
15 {
16 scanf("%d",&a);
17 gcm = (int)((float)a/gcd(a,b)*b);
18 b = gcm;
19 }
20 printf("%d\n",b);
21 }
22 return 0;
23 }