[关闭]
@inkysakura 2017-05-02T16:37:38.000000Z 字数 723 阅读 1308

lightoj1024

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;
}
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注