Cod sursa(job #1959239)

Utilizator pionierul22aNa LiZa pionierul22 Data 9 aprilie 2017 11:28:03
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long p;
long long zero(int x)
{
    long long pw=5;
    long long s=0;
    while(pw<=x)
    {
         s=s+x/pw;
         pw=pw*5;
    }
    return s;

}

int main()
{
    fin>>p;
    if(p==0)
       {
            fout<<1;
            return 0;
       }

    int st=1;
    int dr=100000000;
    long long z;
    long long mijl;
    while(st<=dr)
    {
        mijl=(st+dr)/2;
        z=zero(mijl);
        if(z>=p)
        {

            if(z==p && mijl%5==0)
                {
                    fout<<mijl;
                    return 0;
                }
                else
                dr=mijl-1;
        }
        else
            st=mijl+1;

    }
    if(z!=p)
        fout<<-1;
    else
        fout<<mijl;

       return 0;
}