Cod sursa(job #2733721)

Utilizator mariusn01Marius Nicoli mariusn01 Data 30 martie 2021 19:35:38
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>
#include <algorithm>
using namespace std;
long long n,k,p,c,j,a,x,i,d,exp;
int rez[100002],prim[102];
long long f[102];
ifstream cin("factoriale.in");
ofstream cout("factoriale.out");

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!=0) {
        c[0]++;
        c[c[0]]=t%10;
        t/=10;
    }
}

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

    rez[1]=rez[0]=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--) {
        cout<<rez[i];
    }
}