Cod sursa(job #1357331)

Utilizator TibixbAndrei Tiberiu Tibixb Data 23 februarie 2015 21:24:58
Problema Factoriale Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream>
using namespace std;
int t, n, k, i, j, ii, fact, p[103], m[103], nrp, p2[103], x[103], xp;
ifstream in("factoriale.in");
ofstream out("factoriale.out");
int main(){
    in>>n>>k;
    m[1]=1;
    for(i=1; i<=99; i++){
        if(m[i]==0){
            p[++nrp]=i;
            for(j=i+i; j<=100; j+=i)
                m[j]=1;
        }
    }
    for(ii=1; ii<=n; ii++){
        in>>fact;
        for(i=1; p[i]<=fact; i++){
            xp=p[i];
            while(fact/xp>0){
                p2[p[i]]+=fact/xp;
                xp*=p[i];
            }
        }
    }
    for(i=1; i<=nrp; i++){
        if(p2[p[i]]!=0)
            p2[p[i]]=p2[p[i]]%k;
    }
    x[0]=x[1]=1;
    for(ii=1; ii<=nrp; ii++){
        if(p2[p[ii]]!=0){
            for(i=1; i<=x[0]; i++){
                x[i]=x[i]*p[ii]+t;
                t=x[i]/10;
                x[i]=x[i]%10;
            }
            while(t!=0){
                x[++x[0]]=t%10;
                t/=10;
            }
        }
    }
    for(i=x[0]; i>=1; i--)
        out<<x[i];
return  0;
}