Cod sursa(job #1224374)
Utilizator | Data | 30 august 2014 19:09:03 | |
---|---|---|---|
Problema | Factoriale | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.8 kb |
#include<stdio.h>
int a[100002],f[102],v[50]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101};
int main()
{
freopen("factoriale.in","r",stdin);
freopen("factoriale.out","w",stdout);
int n,k,i,j,x,s,b,nr=1,t,aux,mod;
scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
{
scanf("%d",&x);
j=1;
while(v[j]<=x)
{
s=0;
b=v[j];
while(b<=x)
{
s+=x/b;
b*=v[j];
}
f[v[j]]=f[v[j]]+s;
++j;
}
}
a[nr]=1;
for(i=1;i<=100;++i)
{
mod=f[i]%k;
if(f[i]!=0&&mod!=0)
{
for(x=1;x<=k-mod;++x)
{
t=0;
for(j=1;j<=nr;++j)
{
aux=t+a[j]*i;
t=aux/10;
a[j]=aux%10;
}
while(t)
{
++nr;
a[nr]=t%10;
t/=10;
}
}
}
}
for(i=nr;i>=1;--i)
printf("%d",a[i]);
printf("\n");
return 0;
}