Pagini recente » Cod sursa (job #1219896) | Cod sursa (job #1037066) | Cod sursa (job #2008934) | Cod sursa (job #2077302) | Cod sursa (job #250971)
Cod sursa(job #250971)
#include <stdio.h>
int prim[103],x,n,k,i,d,e,j,rez,p;
void fact(int a)
{
e=0;
d=2;
while(a%d==0)
{
a/=d;
e++;
}
if (e>0)
prim[d]+=e;
d=3;
while(a!=1)
{
e=0;
while(a%d==0)
{
a/=d;
e++;
}
if (e>0)
prim[d]+=e;
d+=2;
}
}
int min(int a, int b)
{
if (a>b) return b;
return a;
}
int main()
{
freopen("factoriale.in","r",stdin);
freopen("factoriale.out","w",stdout);
scanf("%d %d",&n,&k);
for (i=1;i<=n;++i)
{
scanf("%d", &x);
for (j=2;j<=x;++j)
fact(j);
}
rez=1;
for (i=2;i<=100;++i)
if (prim[i]>0)
if (prim[i]%k!=0)
{
p=1;
for (j=2;j<=k-min(prim[i]%k,k%prim[i]);++j)
p*=i;
rez*=p;
}
printf("%lld", rez);
return 0;
}