Pagini recente » Cod sursa (job #1274519) | Cod sursa (job #295483) | Cod sursa (job #258612) | Cod sursa (job #2063875) | Cod sursa (job #2521067)
#include <fstream>
using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
int n,k,i,j,p,prim[55],x[105],exp[55],sol[105];
bool w[105];
int exponent(int n, int x)
{
int nr = 0; int px = x;
while (n/px > 0)
{
nr += n/px;
px *= x;
}
return nr;
}
void ciur()
{
w[0] = w[1] = 1;
for (int i=2; i<=100; i++)
if (!w[i])
{
prim[++p] = i;
for (int j=i+i; j<=100; j+=i)
w[j] = 1;
}
}
void prod(int A[], int b)
{
int t = 0;
for (int i=1; i<=A[0]; i++)
{
A[i] = A[i]*b+t;
t = A[i]/10;
A[i] %= 10;
}
while (t)
{
A[++A[0]] = t%10;
t /= 10;
}
}
int main()
{
fin >> n >> k; ciur();
for (i=1; i<=n; i++)
fin >> x[i];
for (i=1; i<=p; i++)
for (j=1; j<=n; j++)
exp[i] += exponent(x[j], prim[i]);
sol[0] = sol[1] = 1;
for (i=1; i<=p; i++)
while (exp[i]%k != 0)
{
prod(sol, prim[i]);
exp[i]++;
}
for (i=sol[0]; i>=1; i--)
fout << sol[i];
return 0;
}