1019(多个数的最小公倍数)

来源:互联网 发布:中小学生溺水数据 编辑:程序博客网 时间:2024/05/22 01:38

#include <iostream>

using namespace std;

int gcd(int a ,int b);

int main()
{
 int CaseNum; //case 数目
 int number;  //数字个数
 int number1,result=1;
 cin>>CaseNum;

 while( CaseNum-- )
 {
  cin>>number;

  result= 1;
  //求这一组数据的最小公倍数
  while( number -- )
  {
   cin>>number1 ;  
   result = number1  / gcd(number1,result) * result;
  }
  cout<<result<<endl;

 }

 return 0;
}

int gcd(int a ,int b)
{
 int i ;
 if (a < b)
 {
  int t = a ; a = b ; b = t ;
 }

 for ( i = b ; i >=1 ; i--)
 {
  if (( a%i == 0 )&&( b %i == 0))
  {
   return i;
  }
 }
 return 1;
}

 

WA的原因:为了防止数据溢出,应该这样写 result = number1 / gcd(number1,result) * result;