Pagini recente » Cod sursa (job #1571793) | Cod sursa (job #1926351) | Cod sursa (job #1132980) | Cod sursa (job #2052780) | Cod sursa (job #378330)
Cod sursa(job #378330)
#include<stdio.h>
#include<math.h>
int m[100001],n,k,f[101],f2[101];
void inmul (int b)
{
int i;
int x, t=0;
for(i=1;i<=m[0] || t; i++)
{
if (i>m[0])
m[i] = 0;
x=m[i]*b+t;
t=x/10;
m[i]=x%10;
}
m[0]=i-1;
}
int main ()
{
int i,j,val,pr,rad,cj;
freopen("factoriale.in","r",stdin);
freopen("factoriale.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%d",&val);
for(j=2;j<=val;j++)
{
pr=2;
rad=j/2;
cj=j;
while(cj>1 && pr<=rad)
{
while(cj%pr==0)
{
f[pr]++;
cj/=pr;
}
pr++;
} //while
if(cj>1)
f[cj]++;
} //for
} //for
for(i=2;i<=97;i++)
{
if(f[i]==0 || f[i]>=k)
continue;
f2[i]=k-f[i];
}
m[0]=1;
m[1]=1;
for(i=2;i<=97;i++)
{
while(f2[i])
{
f2[i]--;
inmul(i);
} //while
} // for
for(i=m[0];i>=1;i--)
printf("%d",m[i]);
printf("\n");
return 0;
} //main