求多个数的最小公倍数

求多个数的最小公倍数

ZSTU

  • Description
  •  求n个整数的最小公倍数
    
  • Input
  •  多组测试数据,先输入整数T表示组数 然后每行先输入1个整数n,后面输入n个整数k1 k2...kn
    
  • Output
  •  求k1 k2 ...kn的最小公倍数
    
  • Sample Input
  •  1
     3 12 18 6
    
  • Sample Output
  • 36
#include<stdio.h>
int gb(int x,int y)
{
    int t=1,temp;
    if(x<y)
    {
     temp=x;
     x=y;
     y=temp;
 }
    while(t)
    {
        t=x%y;
        x=y;
        y=t;
    }
    return x;
}
int gbs(int s[],int n)  
{
    int m,i;
    for(i=0;i<n-1;i++)
    {
        m=gb(s[i],s[i+1]);
        s[i+1]=s[i]/m*s[i+1];	//否则会RE
    }
    return s[n-1];
} 
int main()
{
    int t,n,m,i;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        int s[10000];
        for(i=0;i<n;i++)        
   scanf("%d",&s[i]);
  if(n==1)
   printf("%d\n",s[0]);
  else
  {
   for(i=0;i<n-1;i++)
          m=gbs(s,n);
   printf("%d\n",m);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43613299/article/details/85161679