Cod sursa(job #1712880)

Utilizator popabogdanPopa Bogdan Ioan popabogdan Data 3 iunie 2016 22:07:28
Problema Factoriale Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
int n,k,i,j;
bitset<101>c;
int prim[27],lg,x;
int pt[27];
int a[5010];
int power(int x, int y)
{
    int cnt=0;
    while(x)
    {
        cnt+=x/y;
        x/=y;
    }
    return cnt;
}
void trns(int x)
{
    int i;
    for(i=1;i<=25 && prim[i]<=x;i++)pt[i]+=power(x,prim[i]);
}
void inm(int *a, int b)
{
    int i,t=0;
    for(i=1;i<=a[0] || t;i++,t/=10)
        a[i]=(t+=a[i]*b)%10;
    a[0]=i-1;
}
int main()
{
    c[0]=c[1]=1;
    for(i=2;i<=100;i++)
        if(!c[i])
    {
        prim[++lg]=i;
        for(j=i*i;j<=100;j+=i)c[j]=1;
    }
    fin>>n>>k;
    for(i=1;i<=n;i++)
    {
        fin>>x;
        trns(x);
    }
    a[0]=a[1]=1;
    for(i=1;i<=25;i++)
        while(pt[i]%k)
    {
        pt[i]++;
        inm(a,prim[i]);
    }
    for(i=a[0];i>=1;i--)fout<<a[i];
    fout<<"\n";
    return 0;
}