Pagini recente » Cod sursa (job #2136759) | Cod sursa (job #2631441) | Cod sursa (job #2255894) | Cod sursa (job #255482) | Cod sursa (job #664776)
Cod sursa(job #664776)
#include <fstream>
using namespace std;
bool prim(int x)
{
if (x == 2) return true;
if (x % 2 == 0) return false;
for (int i = 3; i * i <= x; i += 2)
if (x % i == 0) return false;
return true;
}
int N, K;
int X[102];
int result[100002];
void inm(int val)
{
for (int i = 1; i <= result[0]; ++i)
result[i] *= val;
for (int i = 1; i <= result[0]; ++i)
if (result[i] >= 10)
{
result[i + 1] += result[i] / 10;
result[i] %= 10;
result[0] = (i == result[0] ? i + 1 : result[0]);
}
}
int main()
{
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
result[0] = result[1] = 1;
fin >> N >> K;
for (int i = 1; i <= N; ++i)
fin >> X[i];
for (int i = 2; i < 100; ++i)
if (prim(i))
{
int times = 0;
for (int j = 1; j <= N; ++j)
{
int aux = i;
while (aux <= X[j])
times += X[j] / aux,
aux *= i;
}
times = (times % K == 0 ? 0 : K - times % K);
while (times--) inm(i);
}
for (int i = result[0]; i >= 1; --i)
fout << result[i];
fin.close();
fout.close();
}