Pagini recente » Cod sursa (job #677028) | Cod sursa (job #2588034) | Cod sursa (job #1578935) | Cod sursa (job #1833873) | Cod sursa (job #771510)
Cod sursa(job #771510)
#include <fstream>
#include <algorithm>
using namespace std;
int N, K;
int v[1005];
int x[1005];
int A[100005];
void Citire () {
ifstream fin ("factoriale.in");
fin >> N >> K;
for (int i = 1; i <= N; i++)
fin >> v[i];
fin.close ();
sort (v + 1, v + N + 1);
}
void Business () {
int a;
v[0] = 1;
for (int i = 1; i <= N; i++)
{
for (int u = v[i - 1] + 1; u <= v[i]; u++)
{
a = u;
for (int j = 2; j * j <= a; j++)
{
if (a % j == 0)
{
while (a % j == 0)
{
a /= j;
x[j] += N - i + 1;
}
}
}
if (a > 1) x[a] += N - i + 1;
}
}
}
void mul (int A[], int x) {
int t = 0, i;
for (i = 1; i <= A[0] || t; i++)
{
A[i] = A[i] * x + t;
t = A[i] / 10;
A[i] %= 10;
}
A[0] = i - 1;
}
void Aflare () {
A[0] = 1;
A[1] = 1;
for (int i = 2; i <= 97; i++)
{
if (x[i] % K)
{
for (int j = 0; j < K - x[i] % K; j++)
mul (A, i);
}
}
}
void Scriere () {
ofstream fout ("factoriale.out");
for (int i = A[0]; i >= 1; i--)
fout << A[i];
fout.close ();
}
int main () {
Citire ();
Business ();
Aflare ();
Scriere ();
return 0;
}