Cod sursa(job #1405229)

Utilizator Mr.DoomRaul Ignatus Mr.Doom Data 28 martie 2015 22:52:03
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;

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

int p;

long long factorial(long long x);

int main()
{
    is >> p;
    long long st = 1, dr = p * 5;
    long long mid;
    while ( st <= dr )
    {
        mid =  (st + dr) / 2;
        if ( factorial(mid) < p )
            st = mid + 1;
        else
            dr = mid - 1;
    }
    if ( factorial(st) == p )
        os << st;
    else
        os << -1;

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

long long factorial(long long x)
{
    long long rez = 0;
    for ( int i = 5; i <= x; i *= 5 )
        rez += x / i;
    return rez;
}