ZOJ Problem Set–1797 Least Common Multiple

Time Limit: 2 Seconds      Memory Limit: 65536 KB


The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbers in the set. For example, the LCM of 5, 7 and 15 is 105.

Input

Input will consist of multiple problem instances. The first line of the input will contain a single integer indicating the number of problem instances. Each instance will consist of a single line of the form m n1 n2 n3 ... nm where m is the number of integers in the set and n1 ... nm are the integers. All integers will be positive and lie within the range of a 32-bit integer.

Output

For each problem instance, output a single line containing the corresponding LCM. All results will lie in the range of a 32-bit integer.

Sample Input

2
3 5 7 15
6 4 10296 936 1287 792 1

Sample Output

105
10296


Source: East Central North America 2003, Practice

#include<iostream>
#include<climits>
using namespace std;
const int MAX = INT_MAX; //32-bit
int main()
{
  int cases;cin>>cases;
  while(cases--)
  {
    int numbers;cin>>numbers;
    int max = -1;
    int *iarr = new int[numbers];
    for(int i = 0;i < numbers;i++)
    {
      cin>>*(iarr + i);
      if(*(iarr+i) > max)
        max = *(iarr+i);
    }
    int lcm = max;
    while(max < MAX)
    {
      bool find = true;
      for(int j = 0; j < numbers;j++)
      {
        if(lcm%*(iarr+j))
        {
          find = false;
          break;
        }
      }
      if(find)
      {
        cout<<lcm<<endl;
        break;
      }
      lcm += max;
    }
  }
  return 0;
}
原文地址:https://www.cnblogs.com/malloc/p/2482896.html