Cod sursa(job #2911678)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 1 iulie 2022 09:13:00
Problema Factoriale Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
using namespace std;
ifstream cin("factoriale.in");
ofstream cout("factoriale.out");
int i, j, n, m, k, p, aux, x;
int prim[105], exp[105], cnt[105];
bool f[105];
void produs(int b, int a[]){
    int t=0;
    for(int i=1;i<=a[0];i++){
        a[i] = a[i]*b+t;
        t = a[i]/10;
        a[i]%=10;
    }
    while (t) {
        a[++a[0]] = t%10;
        t/=10;
    }
}
int main(){
    for (i=2;i<=100;i++)
        if (f[i]==0) {
            prim[++p]=i;
            for (j=i+i;j<=100;j+=i)
                f[j]=1;
    }
    cin>>n>>k;
    for (i=1;i<=n;i++){
        cin>>x;
        for(j=1;j<=p;j++){
            aux=prim[j];
            while(aux<=x){
                exp[j]+=x/aux;
                aux*=prim[j];
            }
        }
    }

    cnt[0]=cnt[1]=1;
    for (i=1;i<=p && exp[i];i++){
        while (exp[i]%k!=0) {
            produs(prim[i], cnt);
            exp[i]++;
        }
    }
    for(i=cnt[0];i>=1;i--)
        cout<<cnt[i];
    return 0;
}