Cod sursa(job #2416078)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 26 aprilie 2019 21:15:43
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("factoriale.in");
ofstream fout("factoriale.out");

const int NMAX = 105;
int put[NMAX];
int rasp[20005];

void inmultire(int nr)
{
    int r=0;
    for(int i=1;i<=rasp[0];i++)
    {
        rasp[i]=rasp[i]*nr+r;
        r=rasp[i]/10;
        rasp[i]%=10;
    }
    while(r!=0)
    {
        rasp[++rasp[0]]=r%10;
        r/=10;
    }
}

int main()
{
    int n,k;
    fin >> n >> k;
    int x;
    for(int i=1;i<=n;i++)
    {
        fin >> x;
        for(int j=2;j<=x;j++)
        {
            int nr=j;
            for(int u=2;u*u<=nr;u++)
            {
                while(nr%u==0)
                {
                    nr/=u;
                    put[u]++;
                }
            }
            if(nr!=1) put[nr]++;
        }
    }
    rasp[0]=rasp[1]=1;
    for(int i=2;i<=NMAX-5;i++)
    {
        if(put[i]!=0 and put[i]%k!=0)
        {
            while(put[i]%k!=0)
            {
                inmultire(i);
                put[i]++;
            }
        }
    }
    for(int i=rasp[0];i>=1;i--)
        fout << rasp[i];
    return 0;
}