Cod sursa(job #2733696)

Utilizator Linca_AmaliaLinca Mihaela Amalia Linca_Amalia Data 30 martie 2021 19:05:15
Problema Factoriale Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
int exp( int x, int p ){
    int s = 0;
    int produs = p;
    while ( produs <= x ){
        s += x / produs;
        produs *= p;
    }
    /// la ce putere este numaru prim p in x
    return s;
}

int n, k, i, j, p, f[1005], v[1005], P[1005], e[1005];
long long sol;
int main(){
    fin >> n >> k;
    for ( i = 1; i <= n; i++ )
        fin >> v[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 && P[j] <= v[i]; j++ )
            e[j] += exp( v[i], P[j] );
    sol = 1;
    for ( i = 1; i <= p; i++ ){
        if( e[i] == 0 )
            continue;
        while ( e[i] % k != 0 ){
            sol *= P[i];
            e[i]++;
        }
    }
    fout << sol;
    return 0;
}