Cod sursa(job #2083150)

Utilizator karenalo13Diaconu Iulian Andrei karenalo13 Data 7 decembrie 2017 05:17:48
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
#include <iostream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int dr=2147483647;
int functie(int x)
{
    int nr=0,n=5;
    while(x/n!=0){
        nr=nr+x/n;
        n=n*5;
    }//calculam cate zerouri are numarul n!
    return nr;
}
int main()
{
    int p,st,m;
    f>>p;
    st=0;
   m=(st+dr)/2;
    while(functie(m)!=p && st<=dr)
    {
        m=(st+dr)/2;
        if(functie(m)>p)dr=m-1;
          else st=m+1;// daca are prea multe , mergem la un numar mai mic , daca nu , la unul mai mare ( cautare binara )
    }
    while(functie(m)==functie(m-1))
        m--;// cu toate ca mai multe numere au p zerouri , il vrem pe cel mai mic
    if(functie(m)==p)g<<m;
      else g<<-1;// daca nu il gasit , cout <<-1;
    return 0;
}