Pagini recente » Cod sursa (job #467094) | Cod sursa (job #2213456) | Cod sursa (job #1699449) | Cod sursa (job #824683) | Cod sursa (job #2733696)
#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;
}