Pagini recente » Cod sursa (job #1826550) | Cod sursa (job #528359) | Cod sursa (job #2475557) | Cod sursa (job #3148960) | Cod sursa (job #2520828)
#include <fstream>
using namespace std;
ifstream fin ("factoriale.in");
ofstream fout("factoriale.out");
int nrp,n,k,i,j,prim[105],x[105],e[105],sol[100005];
bool v[115];
int exponent(int x, int p)
{
int prod=p;
int s=0;
while (prod<=x)
{
s+=x/prod;
prod*=p;
}
return s;
}
void produs(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!=0)
{
a[0]++;
a[a[0]]=t%10;
t/=10;
}
}
int main ()
{
fin >> n >> k;
for (i=1;i<=n;i++) fin >> x[i];
for (i=2;i<=105;i++) if (v[i]==0)
{
nrp++;
prim[nrp]=i;
for (j=2;i*j<=110;j++) v[i*j]=1;
}
for (i=1;i<=n;i++) for (j=1;j<=nrp;j++) e[j]+=exponent(x[i],prim[j]);
sol[0]=sol[1]=1;
for (i=1;i<=nrp;i++)
{
if (e[i]==0) break;
while (e[i]%k!=0)
{
produs(sol,prim[i]);
e[i]++;
}
}
for(i=sol[0];i>=1;i--) fout << sol[i];
return 0;
}