1. 程式人生 > >求多個數的最小公倍數

求多個數的最小公倍數

求多個數的最小公倍數

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);
        }
    }
}