Cod sursa(job #2779427)

Utilizator KarinaDKarina Dumitrescu KarinaD Data 3 octombrie 2021 18:24:10
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>

using namespace std;

int main() {
    
    ifstream fin ( "fact.in" );
    ofstream fout ( "fact.out" );
    
    long long n, st, dr, mij, k = 0, p;
    
    fin >> n;
    if ( n == 0 )
        fout << "1";
    else{
        
        st = 0;
        dr = 500000000;
        
        while ( st != dr ){
            
            mij = ( st + dr ) / 2;
            
            k = 0;
            
            for ( p = 5; p <= mij; p *= 5 )
                k = k + mij / p;
            
            if ( k < n )
                st = mij + 1;
            else
                dr = mij;
            
        }
        
        k = 0;
        
        for ( p = 5; p <= st; p *= 5 )
            k = k + st / p;
        
        if ( n == k )
            fout << st;
        else
            fout << "-1";
        
    }
    
    return 0;
}