Cod sursa(job #2516012)

Utilizator mariusn01Marius Nicoli mariusn01 Data 30 decembrie 2019 00:42:04
Problema Factoriale Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;
int f[111], P[101], x[101], e[101];
int p, n, k, i, j;
int exponent(int x, int p) {
    int prod = p;
    int s = 0;
    while (prod <= x) {
        s+=x/prod;
        prod *= p;
    }
    return s;
}

int main () {
    ifstream fin ("factoriale.in");
    ofstream fout("factoriale.out");
    fin>>n>>k;
    for (i=1;i<=n;i++)
        fin>>x[i];
    for (i=2;i<=110;i++)
        if (f[i] == 0) {
            P[++p] = i;
            for (j=i+i;j<=110;j+=i)
                f[j] = 1;
        }

    for (i=1;i<=n;i++)
        for (j=1;j<=p;j++)
            e[j] += exponent(x[i], P[j]);
    long long sol = 1;
    for (i=1;i<=p;i++) {
        if (e[i] == 0)
            break;
        while (e[i]%k != 0) {
            sol = sol * P[i];
            e[i]++;
        }
    }
    fout<<sol;
    return 0;
}