Cod sursa(job #2915213)

Utilizator alin.gabrielAlin Gabriel Arhip alin.gabriel Data 22 iulie 2022 07:22:39
Problema Factoriale Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <cmath>
using namespace std;

int main() {
    ifstream fin("factoriale.in");
    ofstream fout("factoriale.out"); 
    
    int n, k;
    fin >> n >> k;
    int f[100] = {};
    int p[100] = {};
    for (int i = 0; i < n; i++) {
        int x;
        fin >> x;
        for (int j = 2 ; j <= x ; j ++) {
            int d = 2;
            int aux = j;
            while (aux / d >= 1) {
                if (aux % d == 0) {
                    f[d] = d;
                    p[d] += 1;
                    aux = aux / d;
                } else d++;
            }
        }
    }

    int res = 1;
    for (int i = 0 ; i < 100 ; i ++)
        if (p[i] != 0) {
            if (p[i] % k != 0) {
                if (p[i] > k)
                    res *= pow(f[i], k - (p[i] % k));
                else
                    res *= pow(f[i], k - p[i]);
            }
        }

    fout << res;

    fin.close();
    fout.close();
    return 0;
}