Cod sursa(job #2112841)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 23 ianuarie 2018 22:02:50
Problema Factoriale Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <cstdio>
int n,k;
int v[1004];
int ciur[104],pr[104];
void inm(int nr)
{
    for(int i=1;i<=v[0];i++)
    {
        v[i]*=nr;
        if(i==1) continue;
        v[i]+=v[i-1]/10;
        v[i-1]%=10;
    }
    while(v[v[0]]>9)
    {
        ++v[0];
        v[v[0]]+=v[v[0]-1]/10;
        v[v[0]-1]%=10;
    }
}
int main()
{
    freopen ("factoriale.in","r",stdin);
    freopen ("factoriale.out","w",stdout);
    scanf("%d%d",&n,&k);
    v[1]=1;
    v[0]=1;
    for(int i=2;i<=100;i++)
    {
        if(ciur[i]==0)
        {
            for(int j=i+i;j<=100;j+=i) ciur[j]=1;
        }
    }
    int nr;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&nr);
        for(int j=2;j<100;j++)
        {
            if(ciur[j]==0)
            {
                int v=j;
                while(v<nr)
                {
                    pr[j]+=nr/v;
                    v*=j;
                }
            }
        }
    }
    for(int i=2;i<=100;i++)
    {
        if(ciur[i]) continue;
        while(pr[i]%k!=0)
        {
            ++pr[i];
            inm(i);
        }
    }
    for(int i=v[0];i>=1;--i) printf("%d",v[i]);
}