Cod sursa(job #1837625)

Utilizator AlexandruLuchianov1Alex Luchianov AlexandruLuchianov1 Data 30 decembrie 2016 08:53:12
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in ("fact.in");
ofstream out ("fact.out");
int zerouri(int a){
  int p = 5 ,s = 0;
  while(p <= a){
    s+=(a/p);
    p*=5;
  }
  return s;
}
int main()
{
    int n ,i ,j ,st = 0 ,dr = 0,mid = 0 ,p;
    in>>n;
    if(n == 0){
      out<<1;
      return 0;
    }
    st = n * 4;
    dr = n * 5;
    mid = (st + dr)/2;
    while(st<=dr){
      p = zerouri(mid);
      if(p == n){
        out<<mid/5*5;
        return 0;
      }
      if(p < n){
        st = mid + 1;
      } else{
        dr = mid - 1;
      }
      mid = (st + dr)/2;
    }
    if(zerouri(mid)!=n)
      out<<"-1";
    else
      out<<mid/5*5;
    return 0;
}