Cod sursa(job #2520075)

Utilizator Raresr14Rosca Rares Raresr14 Data 8 ianuarie 2020 21:12:36
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
int i,n,k,j,v[110],x,s,sol[100010],f[110],a[110],exp[110],t;
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){
        A[++A[0]]=t%10;
        t/=10;
    }

}
int main(){
    fin>>n>>k;
    for(i=2;i<=100;i++)
        if(f[i]==0){
            v[++t]=i;
            for(j=2*i;j<=100;j+=i)
                f[j]=1;
        }
    for(i=1;i<=n;i++){
        fin>>a[i];
    }
    for(i=1;i<=n;i++)
        for(j=1;j<=t;j++){
            x=v[j];
            s=0;
            while(x<=a[i]){
                s+=a[i]/x;
                x*=v[j];
            }
            exp[j]+=s;
        }
    sol[0]=sol[1]=1;
    for(i=1;i<=t;i++){
        if(exp[i]==0)
            break;
        while(exp[i]%k!=0){
            produs(sol,v[i]);
            exp[i]++;
        }
    }
    for(i=sol[0];i>=1;i--)
        fout<<sol[i];
    return 0;
}