Cod sursa(job #2295086)

Utilizator stan_flaviusStan Flavius Stefan stan_flavius Data 3 decembrie 2018 03:49:38
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>

using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");

int p;

int fact(int n)
{ int i,val=0;
  for(i=5; n/i>=1; i*=5)
      val+=(n/i);
  return val;
}

int main()
{ fin>>p;
  if(p==0) {fout<<1; return 0;}
  else if(p==1) {fout<<5; return 0;}
  int s=1,d=2000000000;
  int pp=0;
  int m;
  while(s<=d)
        { m=(s+d)/2;
          if(fact(m)==p) {fout<<m/5*5; return 0;}
          else if(fact(m)<p) s=m+1;
               else d=m-1;
        }

  fout<<-1;
    return 0;
}