Cod sursa(job #2873131)

Utilizator CarenaMironov Cezar Luca Carena Data 18 martie 2022 18:17:39
Problema Factoriale Scor 40
Compilator cpp-64 Status done
Runda concursceva1 Marime 0.99 kb
#include<fstream>
#include <math.h>

using namespace std;

ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
bool c[101];
int f[101];

int main()
{
    int n, k, i, j, xv, cxv, ok, pr=1;
    c[0]=c[1]=1;
    for(i=4;i<=100;i+=2)
        c[i]=1;
    for(i=3;i*i<=100;i+=2)
        if(c[i]==0)
            for(j=i*i;j<=100;j+=2*i)
                c[j]=1;
    fin>>n>>k;
    for(i=1;i<=n;i++)
    {
        fin>>xv;
        while(xv>1)
        {
            cxv=xv;
            int p=2;
            while(cxv!=1)
            {
                if(c[p]==0)
                    while(cxv%p==0)
                    {
                        f[p]++;
                        cxv/=p;
                    }
                p++;
            }
            xv--;
        }
    }
    for(i=1;i<=100;i++)
        while(f[i]>=k)
            f[i]-=k;
    for(i=1;i<=100;i++)
    {
        if(f[i]>0)
            pr*=pow(i, k-f[i]);
    }
    fout<<pr;
    return 0;
}