Pagini recente » Cod sursa (job #2649261) | Cod sursa (job #2378879) | Cod sursa (job #1066617) | Cod sursa (job #2969588) | Cod sursa (job #1982645)
#include <bits/stdc++.h>
#define MAXN 100
#define SIZE 100000
using namespace std;
int ex[MAXN + 1];
bool ciur[MAXN + 1];
int sol[SIZE + 1];
int sz = 0;
inline void multiply(int x){
int t = 0;
int i = 0;
for(i = 0; i <= sz || t > 0; i++) {
t = t + sol[i] * x;
sol[i] = t % 10;
t /= 10;
}
sz=i-1;
}
int main(){
std::ifstream cin ( "factoriale.in" );
std::ofstream cout ( "factoriale.out" );
int i,j,n,k,x,a;
ios::sync_with_stdio(false);
for(i = 2; i * i <= MAXN; i++)
if(ciur[i] == 0)
for(j = i * i; j <= MAXN; j+=i)
ciur[j] = 1;
cin >> n >> k;
for(i = 1; i <= n; i++) {
cin >> a;
for(j = 2; j <= a; j++)
if(ciur[j] == 0) {
int x = j;
while(x <= a) {
ex[j] += a/x;
x *= j;
}
}
}
sol[0] = 1;
for(i = 2; i <= MAXN; i++)
if(ex[i] > 0 && ex[i] % k >0){
while(ex[i] % k > 0) {
ex[i]--;
multiply(i);
}
}
for(i = sz; i >= 0; i--)
cout << sol[i];
cin.close();
cout.close();
return 0;
}