Cod sursa(job #2911142)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 27 iunie 2022 10:51:06
Problema Factoriale Scor 20
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.19 kb
#include <fstream>
using namespace std;
ifstream fin ("factoriale.in");
ofstream fout ("factoriale.out");
int n,k,i,j,x,pr,l,d,g,t,nr,v[2002],fr[201],dd[201],dnr[201];
int main()
{
    fin>>n>>k;
    for (i=1; i<=n; i++)
    {
        fin>>x;
        for (j=1; j<=x; j++)
        {
            nr=j;
            for (d=2; d*d<=nr; d++)
            {
                while (nr%d==0)
                {
                    fr[d]++;
                    nr=nr/d;
                }
            }
            if (nr!=1)
                fr[nr]++;
        }
    }
    for (i=2; i<=100; i++)
    {
        if (fr[i]!=0)
        {
            l++;
            dd[l]=i;
            dnr[l]=k-fr[i];
        }
    }
    v[0]=v[1]=1;
    for (j=1; j<=l; j++)
    {
        for (g=1; g<=dnr[j]; g++)
        {
            for (i=1; i<=v[0]; i++)
            {
                long long k=1ll*v[i]*dd[j]+t;
                v[i]=k%10;
                t=k/10;
            }
            while (t!=0)
            {
                v[0]++;
                v[v[0]]=t%10;
                t=t/10;
            }
        }
    }
    for (i=v[0]; i>0; i--)
        fout<<v[i];
    return 0;
}