Pagini recente » Cod sursa (job #373672) | Cod sursa (job #470827) | Cod sursa (job #1869927) | Cod sursa (job #379796) | Cod sursa (job #474832)
Cod sursa(job #474832)
#include<cstdio>
typedef int Huge[1001];
int n,k,nrp,x[101],pr[101],fac[101];
Huge v;
void read()
{
freopen("factoriale.in","r",stdin);
freopen("factoriale.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%d",&x[i]);
}
void ciur()
{
int f[101]={false};
for(int i=2;i<=100;i++)
if(!f[i])
{
pr[++nrp]=i;
for(int j=i*i;j<=100;j+=i)
f[j]=true;
}
}
int ffac(int n,int p)
{
int x=0;
while(n)
{
x+=n/p;
n/=p;
}
return x;
}
void init()
{
ciur();
for(int i=1;i<=n;i++)
for(int j=1;j<=nrp;j++)
fac[j]+=ffac(x[i],pr[j]);
}
void inm(Huge A, int B)
{
int i,t=0;
for(i=1; i<=A[0] || t;i++,t/= 10)
A[i]=(t+=A[i]*B)%10;
A[0]=i-1;
}
void afis(Huge A)
{
for(int i=A[0];i>0;i--)
printf("%d",A[i]);
}
void solve()
{
v[0]=v[1]=1;
for(int i=1;i<=nrp;i++)
if(fac[i]%k!=0)
for(int j=1;j<=k-(fac[i]%k);j++)
inm(v,pr[i]);
afis(v);
}
int main()
{
read();
init();
solve();
return 0;
}