@inkysakura
2017-05-02T16:37:38.000000Z
字数 723
阅读 1308
CODE
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
int len;
int cnt[10005],ans[20005];
int n,a[1005];
int nCase;
void mul(int fact)
{
for(int i=0;i<len;i++)ans[i]*=fact;
for(int i=0;i<len;i++)
{
ans[i+1]+=ans[i]/10;
ans[i]%=10;
}
int tp = ans[len];
while(tp)
{
ans[len++]=tp%10;
tp/=10;
}
}
int main()
{
int t;
cin >>t;
while(t--)
{
memset(ans,0,sizeof(ans));
memset(cnt,0,sizeof(cnt));
cin >> n;
for(int i=0;i<n;i++)
cin >>a[i];
for(int i=0;i<n;i++)
{
int fact=2;
int tp=a[i];
while(tp!=1)
{
int num=0;
while(tp%fact==0){num++;tp/=fact;}
cnt[fact]=max(cnt[fact],num);
fact++;
}
}
cout <<"Case "<<++nCase<<": ";
ans[0]=len=1;
for(int i=2;i<=10000;i++)if(cnt[i])mul(pow(i,cnt[i]));
for(int i=len-1;i>0;i--)cout <<ans[i];
cout <<ans[0]<<endl;
}
return 0;
}