Cod sursa(job #3232646)

Utilizator serbanbBrindescu Serban serbanb Data 31 mai 2024 18:43:00
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

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

int p;

long long countZeros(long long n)
{
    long long put=5;
    long long cnt=0;
    while(n>=put){
        cnt+=n/put;
        put*=5;
    }
    return cnt;
}

long long cautareBinara()
{
    long long x=0;
    int l=0;
    long long r=p*5;
    while(l<=r){
        x=(l+r)/2+1;
        if(x==r&&countZeros(x)!=p){
            return 0;
        }
        if(countZeros(x)<p){
            l=x;
        }
        else if(countZeros(x)>p){
            r=x;
        }
        else{
            return x;
        }
    }
}

int main()
{
    fin >> p;
    int a = cautareBinara();
    if(a==0){
        fout << -1;
    }
    else if(a<5){
        fout << 1;
    }
    else{
        fout << a/5 * 5;
    }
    return 0;
}