Cod sursa(job #3033355)

Utilizator Bianca2507Negret Bianca Bianca2507 Data 23 martie 2023 19:40:03
Problema Factorial Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
int gasit,p,n,st,dr,mid;
int nr_zerouri(int x)
{
   int pt=5;
    int nr=0;
    while(x>=pt)
    {
     nr=nr+x/pt;
     pt=pt*5;
    }
    return nr;
}
int main()
{
    ///nr de 0-uri este egal cu puterea la care apare 5 in n!
    cin>>p;
    if(p==0)
        cout<<1;
    else
    {
        st=1;gasit=-1;
        dr=100000000;
        while(st<=dr)
        {
            mid=(st+dr)/2;
            if(nr_zerouri(mid)==p)
            {
                n=mid;
                dr=mid-1;
                gasit=1;
            }
            else
                if(nr_zerouri(mid)<p)
                st=mid+1;
            else
                dr=mid-1;
        }
        if(gasit==-1)
            cout<<-1;
        else
            cout<<n;
    }
    return 0;
}