Cod sursa(job #2736177)

Utilizator answarIonascu Andrei answar Data 3 aprilie 2021 11:23:58
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.34 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++) {
        for (j=i+i;j<=100;j+=i) {
            if (prim[i]==0) {
                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];
        }
}