Cod sursa(job #996775)
Utilizator | Data | 12 septembrie 2013 16:48:18 | |
---|---|---|---|
Problema | Factoriale | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.1 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;
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)
{
if(f[i]!=0&&f[i]%k==0)
{
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;
}