Cod sursa(job #3202134)

Utilizator unomMirel Costel unom Data 10 februarie 2024 18:46:10
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <fstream>

using namespace std;

ifstream in("factoriale.in");
ofstream out("factoriale.out");
int n, k;
int frec[105];
int ans[100005];

void inmulteste(int x)
{
    int t = 0;
    for(int i = 1; i<=ans[0]; i++)
    {
        t += ans[i] * x;
        ans[i] = t % 10;
        t /= 10;
    }

    while(t != 0)
    {
        ans[0]++;
        ans[ans[0]] = t % 10;
        t /= 10;
    }
}

int main()
{
    in>>n>>k;

    int x, y, nr;
    for(int i = 1; i<=n; i++)
    {
        in>>x;

        for(int j = 2; j<=x; j++)
        {
            y = j;

            for(int k = 2; k<=100 && k <= y; k++)
            {
                nr = 0;
                while(y % k == 0)
                {
                    y /= k;
                    nr++;
                }

                frec[k] += nr;
            }
        }
    }

    /*for(int i = 1; i<=5; i++)
    {
        out<<frec[i]<<" ";
    }
    out<<'\n';*/

    ans[0] = ans[1] = 1;
    for(int i = 2; i<=100; i++)
    {
        if(frec[i] % k != 0)
        {
            //out<<i<<" ";
            for(int j = 1; j<=k - (frec[i] % k); j++)
            {
                inmulteste(i);
            }
        }
    }

    for(int i = ans[0]; i>=1; i--)
    {
        out<<ans[i];
    }

    return 0;
}