Cod sursa(job #329054)
| Utilizator | Data | 4 iulie 2009 16:04:19 | |
|---|---|---|---|
| Problema | Factorial | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 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;
int e = nrz(d - d % 5);
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;
}