Pagini recente » Cod sursa (job #24859) | Cod sursa (job #2882700) | Cod sursa (job #306123) | Cod sursa (job #1910596) | Cod sursa (job #2405020)
#include <bits/stdc++.h>
using namespace std;
int finput[105];
long long fact[105],total[105];
unsigned long long int ans=1;
int main()
{
freopen("factoriale.in","r",stdin);
freopen("factoriale.out","w",stdout);
int n,k,x,d,cx,ma=0,i,j;
scanf("%d%d",&n,&k);
for(i=1; i<=n; ++i)
{
scanf("%d",&x);
if(x>ma)
ma=x;
finput[x]++;
}
for(x=2;x<=ma;++x)
{
cx=x;
for(d=2;d*d<=x;++d)
if(x%d==0)
{
fact[d]++;
cx/=d;
if(d*d==x)
fact[d]++,cx/=d;
}
if(cx>1)
fact[cx]++;
if(finput[x])
{
for(i=2;i<=ma;i++)
total[i]+=1LL*finput[x]*fact[i];
}
}
for(i=1;i<=ma;i++)
if(total[i]%k!=0)
{
x=k-total[i]%k;
for(j=1;j<=x;++j)
ans*=1LL*i;
}
printf("%lld",ans);
return 0;
}