Cod sursa(job #629049)

Utilizator irene_mFMI Irina Iancu irene_m Data 2 noiembrie 2011 16:43:46
Problema Factorial Scor 0
Compilator cpp Status done
Runda gc_practice Marime 0.83 kb
#include <cstdio>
#include <iostream>
#define infile "factorial.in"
#define outfile "factorial.out"

using namespace std;

int N, P;

int nrZero(int val)
{
    int nr = 0, p = 5;
    while( val>=p )
    {
        nr += val / p;
        p *= 5;
    }
    return nr;
}


void search(int li, int lf)
{
    int m, nr;

    while( li <= lf )
    {
        m = li + ( lf - li ) / 2;
        nr = nrZero( 5*m );
        if( nr == P )
            N = 5 * m;
        if( nr < P)
            li = m + 1;
        else
            lf = m - 1;
    }
}

int main()
{
    freopen( infile, "r", stdin );
    freopen( outfile, "w", stdout);

    cin >> P ;
    N = -1;
    if( P == 0)
        N = 1;
    else
        search( 1, P );

    cout << N << "\n";
    fclose(stdin);
    fclose(stdout);
    return 0;
}