Cod sursa(job #768102)

Utilizator ionut_blesneagIonut Blesneag ionut_blesneag Data 15 iulie 2012 23:06:18
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream>
using namespace std;

long long n,p,p2;

long long prelucreaza(int psi)
{long long result=0;
 while(psi)
  {psi=psi/5;
   result+=psi;}
 return result;  }


int main()
{
ifstream f("fact.in");
f>>p;
f.close();
long long ni, nf;
ni=1;  nf=5*p;  
int valid=0;
int gata=0;
ofstream g("fact.out");

if(p==0)
  g<<"1";
else{
             
while(ni<=nf && gata==0)
{n=(ni+nf)/2;
p2=prelucreaza(n);
if(p2==p)
 {valid=1; gata=1;}
else
  {if(p2>p)
      nf=n;
   if(p2<p)
      ni=n;}  
 if(nf-ni<2 && prelucreaza(ni)!=p)
   {valid=0;  gata=1;} 
         }

if(valid==1)
{n=n-n%5;
g<<n;}
else
g<<"-1";

}

g.close();
return 0;    
}