Cod sursa(job #329059)
| Utilizator | Data | 4 iulie 2009 16:11:33 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
int n;
int nrz(int nr)
{
int j = 0;
while (nr % 5 == 0)
{
j+=nr /5;
nr/=5;
}
return j;
}
int binar(int ls, int ld)
{
if (ls<=ld)
{
int d = (ls+ld)/2;
d -= d % 5;
int e = nrz(d);
if ( e == n)
{
return d;
}
if (e > n)
{
binar(ls,d-1);
}
else
{
binar(d+1,ld);
}
}
else
{
return -1;
}
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&n);
printf("%d", binar(1,n*5));
return 0;
}