Cod sursa(job #349582)
| Utilizator | Data | 20 septembrie 2009 12:06:25 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include<cstdio>
long numar;
long nrz ( long n)
{
long p=0;
for (long a=5;a<=n;a*=5)
p+=n/a;
return p;
}
void caut ( long x , long y )
{
if ( x > y )
{
printf("-1");
}
else
{
long mij , nr ;
mij = ( x + y ) / 2;
nr = nrz ( mij );
if ( nr > numar )
caut ( x , mij - 1 );
else if ( nr < numar )
caut ( mij + 1 , y );
else if (nr==numar)
{
printf("%ld", mij-(mij%5));
}
}
}
int main(){
freopen ("fact.out","w",stdout);
scanf("%ld", & numar);
caut(1,100000000);
return 0;
}
