Cod sursa(job #1391480)

Utilizator Athena99Anghel Anca Athena99 Data 17 martie 2015 23:13:12
Problema Factoriale Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;

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

typedef long long i64;

const int pmax= 100;

int pr;
int v[pmax+1], p[pmax+1], x[pmax+1];

int main(  ) {
    for ( int i= 2; i<=pmax; ++i ) {
        if ( v[i]==0 ) {
            for ( int j= i*i; j<=pmax; j+= i ) {
                v[j]= 1;
            }
            p[++pr]= i;
        }
    }

    int n, k;
    fin>>n>>k;
    for ( int i= 1; i<=n; ++i ) {
        int a;
        fin>>a;

        for ( int j= 1; j<=pr; ++j ) {
            for ( int aux= a; aux>0; aux/= p[j] ) {
                x[j]= x[j]+aux/p[j];
            }
        }
    }

    i64 sol= 1;
    for ( int i= 1; i<=pr; ++i ) {
        x[i]= (k-x[i]%k)%k;
        for ( int j= 1; j<=x[i]; ++j ) {
            sol= (i64)sol*p[i];
        }
    }

    fout<<sol<<"\n";

    return 0;
}