Cod sursa(job #1980336)

Utilizator Stefan_RaduStefan Radu Stefan_Radu Data 12 mai 2017 21:18:08
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <iostream>
#include <cmath>

using namespace std;

int nr_zero(int n)// nr de zerouri de la finalul lui n!
{
  int nr=0, k=5;
  while(k<=n)
  {
    nr+=n/k;
    k*=5;
  }
  return nr;
}

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

  int p;
  fin>>p;
  if(p==0)
    fout<<1;
  else
  {
    int st=1,dr=p*5,ans=0;
    while(st<=dr)
    {
      int mij=(st+dr)/2;
      if(nr_zero(mij)<=p)
      {
        ans=mij;
        st=mij+1;
      }
      else
        dr=mij-1;
    }
    if(nr_zero(ans)==p)
      fout<<ans-ans%5;
    else
      fout<<-1;
  }
  return 0;
}