Cod sursa(job #2910620)

Utilizator biancalautaruBianca Lautaru biancalautaru Data 22 iunie 2022 20:01:51
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda 3_iulie Marime 0.98 kb
#include <fstream>
#define DIM 101
using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
int n,m,i,j,k,x,pr,p[DIM],e[DIM],sol[10001];
bool c[DIM];

void produs(int a[],int b) {
    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!=0) {
        a[++a[0]]=t%10;
        t/=10;
    }
}

int main() {
    fin>>n>>k;
    for (i=2;i<=100;i++)
        if (c[i]==0) {
            p[++m]=i;
            for (j=2*i;j<=100;j+=i)
                c[j]=1;
        }
    while (n--) {
        fin>>x;
        for (i=1;i<=m;i++) {
            pr=p[i];
            while (pr<=x) {
                e[i]+=x/pr;
                pr*=p[i];
            }
        }
    }
    sol[0]=sol[1]=1;
    for (i=1;i<=m && e[i]!=0;i++)
        while (e[i]%k!=0) {
            produs(sol,p[i]);
            e[i]++;
        }
    for (i=sol[0];i>=1;i--)
        fout<<sol[i];
    return 0;
}