Cod sursa(job #1358185)

Utilizator Burbon13Burbon13 Burbon13 Data 24 februarie 2015 14:01:08
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <cstdio>

#define n_max 100000000
#define inf 0x3f3f3f3f

using namespace std;

int nr ;

void caut_bin() ;

int main()
{
    freopen( "fact.in" , "r" , stdin ) ;
    //freopen( "fact.out" , "w" , stdout ) ;
    scanf( "%d" , &nr ) ;
    caut_bin() ;
    return 0;
}

int verif( int m )
{
    int sum = 0 , i = 5 ;
    while ( m / i )
    {
        sum += m / i ;
        i *= 5 ;
    }
    if ( sum == nr )
        return 0 ;
    else if ( sum > nr )
        return 1 ;
    return -1 ;
}

void caut_bin()
{
    int st = 1 , dr = n_max , n = inf ;
    while ( st <= dr )
    {
        int m = st + ( dr - st ) / 2 ;
        int k = verif(m) ;
        if ( k == 0 )
            {
                if ( m < n )
                    n = m ;
                dr = m - 1 ;
            }
        else if ( k == 1 )
            dr = m - 1 ;
        else
            st = m + 1 ;
    }
    if ( n == inf )
    {
        printf( "-1\n" ) ;
        return ;
    }
    printf( "%d\n" , n ) ;
}