Cod sursa(job #3285005)

Utilizator David2007David Preda David2007 Data 12 martie 2025 13:52:57
Problema Factoriale Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("factoriale.in");
ofstream g("factoriale.out");

int n,k,x;
int fr[1001];

int ci[100001];

void ciur()
{
    ci[1]=ci[0]=1;
    for(int i=2; i<=10000; i++)
        if(ci[i]==0)
            for(int j=i; j<=10000/i; i++)
                ci[i*j]=1;
}
int main()
{
    f>>n>>k;
    for(int i=1; i<=n; i++)
    {
        f>>x;
        for(int j=2; j<=x; j++)
        {
            if(ci[j]==1)
            {
                fr[j]++;
            }
            else
            {
                int p=0,l;
                int d=2;
                l=j;
                while(l>1)
                {
                    p=0;
                    while(l%d==0)
                    {
                        p++;
                        l=l/d;
                    }
                    fr[d]+=p;
                    d++;
                }
            }
        }
    }
    int p=1;
    for(int i=2; i<=101; i++)
        if(fr[i]!=0)
            if(k>fr[i])
            {

                int nr=k-fr[i];
                if(nr!=0)
                    while(nr>0)
                    p=p*i,nr--;

            }
            else if(fr[i]%k!=0)
            {

                int nr=fr[i]/k+1;
                nr=nr-fr[i];
                if(nr!=0)
                    while(nr>0)
                        p=p*i,nr--;
            }
    g<<p;

}