Pagini recente » Cod sursa (job #1096503) | Cod sursa (job #1136062) | Cod sursa (job #1246431) | Cod sursa (job #2548155) | Cod sursa (job #137811)
Cod sursa(job #137811)
#include<stdio.h>
long int n,k,i,j,np,p[101],pp[26][101],x,e[26],sol;
int main()
{
FILE *f,*g;f=fopen("factoriale.in","r");g=fopen("factoriale.out","w");
fscanf(f,"%ld%ld",&n,&k);
for(i=1;i<=100;i++)p[i]=i;
for(i=2;i<=100;i++)if(p[i]==i){np++;p[np]=i;for(j=i;j<=100;j=j+i)while(p[j]%i==0){pp[np][j]++;p[j]/=i;}}
for(i=1;i<=np;i++)for(j=1;j<=100;j++)pp[i][j]+=pp[i][j-1];
sol=1;
for(i=1;i<=n;i++)
{ fscanf(f,"%ld",&x);
for(j=1;j<=np;j++)
{ if(p[j]>x)break;
e[j]+=pp[j][x];
}
}
for(i=1;i<=np;i++){e[i]%=k;while(e[i]){sol*=p[i];e[i]--;}}
fprintf(g,"%ld",sol);
fcloseall();
return 0;
}