Pagini recente » Cod sursa (job #1870471) | Cod sursa (job #2171804) | Cod sursa (job #375039) | Cod sursa (job #938279) | Cod sursa (job #2112901)
#include <bits/stdc++.h>
using namespace std;
ifstream in("factoriale.in");
ofstream out("factoriale.out");
int n, k, p, x, st[110], vf, freq[110], a[50100] = {1, 1};
bool viz[110];
void get(int nr, int val){
int rs = 0;
int aux = val;
while(aux <= nr){
rs += nr / aux;
aux *= val;
}
freq[val] += rs;
}
void mul(int val){
int i, t;
for(i = 1, t = 0; i <= a[0] || t; i++, t /= 10)
a[i] = (t += a[i] * val) % 10;
a[0] = i - 1;
}
int main(){
in >> n >> k;
for(int i = 2; i <= 100; i++)
if(!viz[i]){
st[++vf] = i;
for(int j = i + i; j <= 100; j += i)
viz[j] = 1;
}
for(int i = 1; i <= n; i++){
in >> x;
for(int j = 1; j <= vf; j++)
if(st[j] > x)
break;
else
get(x, st[j]);
}
for(int i = 1; i <= vf; i++){
freq[st[i]] %= k;
if(freq[st[i]]){
p = k - freq[st[i]];
for(int j = 1; j <= p; j++)
mul(st[i]);
}
}
for(int i = a[0]; i; i--)
out << a[i];
return 0;
}