Cod sursa(job #2673359)

Utilizator Anna123Anna Negrea Anna123 Data 16 noiembrie 2020 16:57:06
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

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

int p;

int NrZero( int x )
{
    int nr = 0;
    for ( int i = 5; i <= x; i *= 5 )
        nr += x / i;

    return nr;
}

int CautaBinar ( int p )
{
    int st = 5; int dr = 1e9;
    while ( st <= dr )
    {
        int mij = st + (dr - st) / 2;
        if ( mij % 10 < 5 ) mij -= mij % 10;
        else mij = (mij / 10) * 10 + 5;
        int nrzero = NrZero( mij );
        if ( nrzero == p )
            return mij;
        else if ( nrzero < p )
            st = mij + 5;
        else dr = mij - 5;
    }
    return -1;
}

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