Cod sursa(job #1303129)

Utilizator Corina1997Todoran Ana-Corina Corina1997 Data 27 decembrie 2014 17:25:26
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
using namespace std;

ifstream is("fact.in");
ofstream os("fact.out");

int n, rez, y;
int st, dr, mij;
bool ok = false;

int N5( int x );

int main()
{
    is >> n;
    if ( n == 0 )
        os << 1;
    else
    {
        st = 0;
        dr = (1<<31) - 1;
        while ( st <= dr && ok == false )
        {
            mij = ( st + dr ) / 2;
            if ( N5(mij) == n )
            {
                ok = true;
                continue;
            }
            if ( N5(mij) > n )
            {
                dr = mij - 1;
                continue;
            }
            if ( N5( mij ) < n )
            {
                st = mij + 1;
                continue;
            }
        }
        if ( ok == false )
            os << -1;
        else
        {
            while(mij%5) mij--;
            os << mij;
        }
    }

    is.close();
    os.close();
    return 0;
}

int N5( int x )
{
    int cnt = 0;
    while ( x >= 1 )
    {
        x /= 5;
        cnt += x;
    }
    return cnt;
}