Cod sursa(job #1326993)

Utilizator TodeTodeAlexandru Toderica TodeTode Data 26 ianuarie 2015 11:54:49
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

using namespace std;

int Factorial(long long n)
{
    long long x, s;
    x = n;
    s = 0;
    while(x)
    {
        x /= 5;
        s += x;
    }
    return s;
}

int main()
{
    long long p, st, dr, nr;
    ifstream fin("fact.in");
    fin >> p;
    fin.close();
    ofstream fout("fact.out");
    st = 1;
    dr = 100000000;
    while(st <= dr)
    {
        nr = st + (dr - st) / 2;
        if(Factorial(nr) < p) st = nr + 1;
        else dr = nr - 1;
    }
    if(Factorial(dr - 1) != p) fout << -1;
    else fout << dr - 1;
    fout.close();
    return 0;
}