Cod sursa(job #2414072)

Utilizator circeanubogdanCirceanu Bogdan circeanubogdan Data 24 aprilie 2019 03:44:35
Problema Factoriale Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#define DIM 102

using namespace std;

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

int n, k, x;
int v[DIM], divCrt[DIM];
int divPrim[DIM][DIM];

int main(int argc, const char * argv[]) {
    
    in>>n>>k;
    
    for(int i = 0; i <= 100; ++ i){
        int x = i;
        for(int d = 2; d * d <= x; ++ d){
            while(x % d == 0){
                x /= d;
                divPrim[i][d] ++;
            }
        }
        if(x != 1){
            divPrim[i][x] ++;
        }
        for(int j = 1; j <= 100; ++ j){
            divPrim[i][j] += divPrim[i - 1][j];
        }
    }
    
    for(int i = 1; i <= n; ++ i){
        in>>x;
        for(int j = 1; j <= 100; ++ j){
            divCrt[j] += divPrim[x][j];
        }
    }
    
    long long res = 1;
    
    for(int i = 1; i <= 100; ++ i){
        int mod = divCrt[i] % k;
        for(int j = 1; j <= mod; ++ j){
            res *= i;
        }
    }
    
    out<<res;
    
    
    return 0;
}