Cod sursa(job #2495987)

Utilizator cezar123Bulancea Cezar cezar123 Data 20 noiembrie 2019 08:42:38
Problema Factorial Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>
using namespace std;


int zero(int n)
    {
        int S=0,x=5;
        if(n==0) return -1;
            else{
                    while(n/x!=0)
                    {
                        S=S+n/x;
                        x=x*5;
                    }
                    return S;
                }


    }
int main()
{
    long long p,ok=0,st,dr,mijloc,z1,z2;
    ifstream f("fact.in");
    ofstream g("fact.out");
    f>>p;
    if(p==0) g<<1;
        else {
                st=1;
                dr=100000000000;

                while(st<=dr && ok==0)
                {
                    mijloc=(st+dr)/2;
                    z1=zero(mijloc);
                    z2=zero(mijloc-1);
                    if(z1==p && z2<p) ok=1;
                        else if(z1<p) st=mijloc+1;
                                else if(z1>p || z2>=p) dr=mijloc-1;
                }
                if(ok==1) g<<mijloc;
                    else g<<-1;
             }

}