Cod sursa(job #942815)

Utilizator AnonymouslegionAnonymous Anonymouslegion Data 23 aprilie 2013 17:26:08
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<fstream>

using namespace std;

inline int many(int &x){
  int ans = 0, t = 5;
  while(x >= t){
    ans += x / t;
    t *= 5;
  }
  return ans;
}

int main(){
  ifstream in("fact.in");
  ofstream out("fact.out");

  int p;
  in >> p;

  int left = 1, right = 1e9, mid, ans = -1;
  while(left <= right){
    mid = left + ((right - left) >> 1);
    if(many(mid) < p)
      left = mid + 1;
    else{
      ans = mid;
      right = mid - 1;
    }
  }

  if(many(ans) == p)
    out << ans;
  else
    out << -1;

  return 0;
}