这题让我有点纠结,long long总是超时,只能用int,求大神帮我解决这个问题
以上问题也是acm中经常会遇到的问题,建议大家在保证int不溢出的情况下,一定要用int,不要去用long long 或__int64
代码附在下面:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<time.h>
#include<math.h>
#define ll long long
#define eps 1e-9
#define pi acos(-1.0)
#define P system("pause")
using namespace std;
ll gcd(ll a,ll b)
{
return b % a == 0 ? a : gcd(b%a,a);
}
int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
int t;
scanf("%d",&t);
int a,m, n;
while(t--)
{
int i;
scanf("%d%d",&n,&m);
for(i = 1; i < n; i++)
{
scanf("%d",&a);
if(m < a)
{
int k = a; a = m; m = k;
}
m = a / gcd(a,m)* m;//先除后乘避免溢出
}
printf("%d\n",m);
}
// P;
return 0;
}