Cod sursa(job #85508)
| Utilizator | Data | 21 septembrie 2007 17:24:47 | |
|---|---|---|---|
| Problema | Factorial | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
int main()
{
long long ad,c,nr,n,i,j,p;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);
c=p;
if (p==0)
{
printf("1\n");
return 0;
}
while (c%5==0)
c=c/5;
if (c==1)
{
printf("-1");
return 0;
}
n=0;
nr=0;
ad=0;
while (nr+156<p)
{
n=n+625;
nr=nr+156;
if (n%625==0)
ad=n/625;
nr=nr+ad;
}
while (nr<p)
{
n=n+5;
c=n;
while (c%5==0)
{
c=c/5;
nr++;
}
}
printf("%lld\n",n);
return 0;
}