Cod sursa(job #2026512)

Utilizator Groza_Iulia_DianaGroza Iulia Diana Groza_Iulia_Diana Data 24 septembrie 2017 15:43:38
Problema Factoriale Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <fstream>
#include <cmath>

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

long long n, k, z, nr, x, prod, t[10005], a[10005], e[10005];
bool v[10005];

void ciur()
{
    for(int i=4; i<=10000; i+=2)
        v[i] = 1;
    v[0] = 1;
    v[1] = 1;
    nr = 1;
    t[nr] = 2;
    for(int i=3; i*i<=10000; i+=2)
        if(!v[i])
        {
            nr++;
            t[nr] = i;
            for(int j=i*i; j<=10000; j+=2*i)
                v[j] = 1;
        }
}

int main()
{
    fin >> n >> k;
    ciur();
    for(int i=1; i<=n; i++)
    {
        fin >> a[i];
        for(int j=2; j<=a[i]; j++)
        {
            z=1;
            x = j;
            while(x>1)
            {
                while(x%t[z]==0)
                {
                    e[t[z]]++;
                    x /= t[z];
                }
                z++;
            }
        }
    }
    prod = 1;
    for(int i=1; i<=nr; i++)
        if(e[t[i]])
    {
        while(e[t[i]]%k)
        {
            e[t[i]]++;
            prod *= t[i];
        }
    }
    fout << prod;
    return 0;
}