Cod sursa(job #1810724)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 20 noiembrie 2016 14:58:34
Problema Factoriale Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <cstdio>

using namespace std;
int v[100],sol[100],ciur[101],prim[100];
void inmultsol (int x){
    int i,t=0;
    for (i=1;i<=sol[0];i++){
        sol[i]=sol[i]*x+t;
        t=sol[i]/10;
        sol[i]%=10;
    }
    while (t>0){
        sol[++sol[0]]=t%10;
        t/=10;
    }
}
int main()
{
    FILE *fin=fopen ("factoriale.in","r");
    FILE *fout=fopen ("factoriale.out","w");
    int n,k,i,x,j,el=0,p;
    fscanf (fin,"%d%d",&n,&k);
    for (i=2;i*i<=100;i++){
        if (ciur[i]==0){
            prim[++el]=i;
            for (j=i*i;j<=100;j+=i)
                ciur[j]=1;
        }
    }
    for (i=1;i<=n;i++){
        fscanf (fin,"%d",&x);
        for (j=1;j<=el;j++){
            p=prim[j];
            while (p<=x){
                v[prim[j]]=v[prim[j]]+x/p;
                p*=p;
            }
        }
    }
    sol[0]=sol[1]=1;
    for (i=1;i<100;i++){
        if (v[i]%k!=0){
            for (j=1;j<=k-v[i]%k;j++)
                inmultsol(i);
        }
    }
    for (i=sol[0];i>0;i--)
        fprintf (fout,"%d",sol[i]);
    return 0;
}