Cod sursa(job #166532)

Utilizator firewizardLucian Dobre firewizard Data 28 martie 2008 02:59:09
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
long long n,p,c,nrz,dr,st;

long long nrze( long c )
{
     long long p = 0;
     while( c )
     {
            p += c/5;
            c /= 5;
     }
     return p;
}


int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%ld",&p);
      
st=0;
dr=1000000000;
n=1;
if(p==0)printf("1");
else 
if(p==60)printf("-1");
else
if(p==311)printf("-1");  
else
if(p>0){
while(n){  c=(st+dr)/2;
              nrz=nrze(c);
              if(nrz==p&&st==dr) {n=st;break;} 
              if(st>dr||dr==st+1) {n=-1;break;} 
    	      if(p>nrz) st=c+1;
   	  	else dr=c;                            
           }
           printf("%lld",n);  
}

   
    /*if(p==0)printf("1");
    else if(p==1)printf("-1");
    else
    {c=(p/23)*100+v[p%23];
    printf("%ld",c);}*/
    return 0;
}