Cod sursa(job #1539947)

Utilizator lauratenderLaura Tender lauratender Data 1 decembrie 2015 20:29:59
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>

using namespace std;

ifstream fin ( "fact.in" );
ofstream fout ( "fact.out" );

int exp5( int k )
{
    if ( k==0 )
        return 1;
    int p5, sum;
    p5 = 5;
    sum = 0;
    while ( p5<=k ) {
        sum += k/p5;
        p5 *= 5;
    }
    return sum;
}
int main()
{
    int p, n2;
    fin>>p;
    for ( n2 = 1; 2*n2<=5*p; n2 *= 2 ) {
    }
    int pas, sol;
    sol = 0;
    for ( pas = n2; pas>0; pas /=2 ) {
        if ( sol+pas<=5*p && exp5( sol+pas )<p )
            sol += pas;
    }
    ++sol;
    if ( exp5(sol)!=p )
        sol = -1;
    fout<<sol<<'\n';
    fin.close();
    fout.close();
    return 0;
}