Cod sursa(job #3361163)

Utilizator andreicapyCapitanescu Andrei andreicapy Data 21 iulie 2026 13:29:29
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>

using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
long long i,j,n,k,a,p,exp,f[102];
int rez[100002],prim[102];
void produs(int  a[],int b,int c[]){
    long long t=0,aux=0;
    for(long long i=1;i<=a[0];i++){
        aux=a[i]*b+t;
        c[i]=aux%10;
        t=aux/10;
    }
    c[0]=a[0];
    while(t){
        c[0]++;
        c[c[0]]=t%10;
        t=t/10;
    }
}

int main()
{
    for(i=2;i<=100;i++){
        if(prim[i]==0){
            for(int j=i+i;j<=100;j+=i){
                prim[j]=1;
            }
        }
    }
    fin>>n>>k;
    for(i=1;i<=n;i++){
        fin>>a;
        for(j=2;j<=a;j++){
            p=j;
            if(prim[j]==0){
                while(p<=a){
                    f[j]+=a/p;
                    p*=j;
                }
            }
        }
    }
    rez[0]=rez[1]=1;
    for(i=2;i<=97;i++){
        if(f[i]>0){
            if(f[i]%k!=0){

                exp=k-f[i]%k;
                for(j=1;j<=exp;j++){
                    produs(rez,i,rez);
                }

            }
        }
    }
    for(i=rez[0];i>=1;i--){
        fout<<rez[i];
    }
    return 0;
}