Pagini recente » Cod sursa (job #2533461) | Cod sursa (job #84596) | Cod sursa (job #2021273) | Cod sursa (job #2908522) | Cod sursa (job #138123)
Cod sursa(job #138123)
#include<stdio.h>
FILE *f=fopen("factoriale.in","r"),
*g=fopen("factoriale.out","w");
int n,i,j,a[1001],p[1001],k,c[1001],pr,ok,x,y,t;
void mul(int 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;
}
int q[500];
int main()
{ p[0]=2;
p[1]=3;
p[2]=5;
i=7;k=2;
while(i<1000) { ok=1;
for(j=1;j<=k&&ok;++j) if(i%p[j]==0) ok=0;
if(ok) p[++k]=i;
i+=2;
}
pr=k;
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;++i) { fscanf(f,"%d",&y);
for(t=2;t<=y;++t){ x=t;
for(j=0;j<=pr&&x>1;++j) while(x%p[j]==0) x/=p[j],++c[j];
}
}
q[0]=1;
q[1]=1;
for(i=0;i<=pr;++i) { c[i]%=k; if(c[i]) c[i]=k-c[i];
for(j=1;j<=c[i];++j) mul(q,p[i]);
}
for(i=1;i<=q[0];++i) fprintf(g,"%d",q[i]);
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;
}