Pagini recente » Cod sursa (job #228567) | Cod sursa (job #1259870) | Cod sursa (job #750043) | Monitorul de evaluare | Cod sursa (job #2810324)
#include <bits/stdc++.h>
using namespace std;
inline void Open(const string Name) {
#ifndef ONLINE_JUDGE
(void)!freopen((Name + ".in").c_str(), "r", stdin);
(void)!freopen((Name + ".out").c_str(), "w", stdout);
#endif
}
int a[100001], F[101];
int N, K, NF;
void prod(int x) {
int i = 0, t = 0;
for(i = 1;i <= a[0];i++) {
a[i] = a[i] * x + t;
t = a[i] / 10;
a[i] = a[i] % 10;
}
while(t > 0) {
a[++a[0]] = t % 10;
t /= 10;
}
}
void desc(int x) {
while(x % 2 == 0)
F[2]++, x /= 2;
int d = 3;
while(d * d <= x) {
while(x % d == 0)
F[d]++, x /= d;
d += 2;
}
if(x > 1) F[x]++;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
Open("factoriale");
cin >> N >> K;
for(int i = 1;i <= N;i++) {
cin >> NF;
for(int j = 2;j <= NF;j++)
desc(j);
}
a[0] = a[1] = 1;
for(int i = 2;i <= 100;i++)
if(F[i] != 0) {
while(F[i] % K != 0) {
F[i]++;
prod(i);
}
}
for(int i = a[0];i >= 1;i--)
cout << a[i];
return 0;
}