Cod sursa(job #2415168)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 25 aprilie 2019 16:31:44
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
using namespace std;

ifstream fin("factoriale.in");
ofstream fout("factoriale.out");

long long n,k,i,j,d,x,v[101],sol[2000000],aux,c;

void inm(long long x){
    long long t=0;
    for(long long i=1;i<=sol[0];i++){
        sol[i]=sol[i]*x+t;
        t=sol[i]/10;
        sol[i]%=10;
    }

    while(t){
        sol[++sol[0]]=t%10;
        t/=10;
    }
}

int main(){
    fin>>n>>k;

    for(;n;n--){
        fin>>x;

        for(j=2;j<=x;j++){
            c=j;
            for(d=2;d*d<=c;d++)
                while(c%d==0){
                    c/=d;
                    v[d]++;
                }
            if(c!=1)
                v[c]++;
        }
    }

    sol[0]=1;
    sol[1]=1;

    for(i=2;i<=100;i++)
        if(v[i]%k!=0 && v[i]!=0){
            while(v[i]%k)
                inm(i),v[i]++;
        }

    for(;sol[0];sol[0]--)
        fout<<sol[sol[0]];

    return 0;
}