Cod sursa(job #1941883)

Utilizator lazaralex2002Lazar Alex Constantin lazaralex2002 Data 27 martie 2017 17:25:52
Problema Factorial Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <cstdio>
using namespace std;
FILE*fin=fopen("fact.in","r");
FILE*fout=fopen("fact.out","w");
int zerouri(int n)
{
    int p = 1 , s = 0 ;
    while ( p * 5 <= n )
    {
        p *= 5 ;
        s = s + n / p ;
    }
    return s ;
}
int main()
{
    int n , s = 0 , g = 1 , mij , p ;
    fscanf( fin , "%d" , &p );
    int st = 1 , dr = 100000000  ;
    bool ok = false ;
    while ( st <= dr && ok == false )
    {
        mij = ( st + dr ) / 2 ;
        g = zerouri(mij) ;
        if ( p < g  )
        {
            dr = mij - 1 ;
        }
        else
        if ( p > g )
        {
            st = mij + 1 ;
        }
        else ok = true ;
    }
    if ( p == zerouri(mij) ) fprintf( fout , "%d" , mij - ( mij % 5 ) ) ;
    else fprintf( fout , "-1") ;
    return 0;
}