Cod sursa(job #1958102)

Utilizator workwork work work Data 8 aprilie 2017 00:37:08
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

using namespace std;

ifstream F("fact.in");
ofstream G("fact.out");

int p, mij, st, dr;
unsigned long long Z;

unsigned long long zero(int x)
{
    unsigned long long s = 0;
    int pw = 5;
    while(pw <= x)
        s += x / pw, pw *= 5;
    return s;
}

int main()
{
    F >> p;
    dr = 1000000000;
    st = 1;
    while(st <= dr)
    {
        mij = (st + dr) >> 1;
        Z = zero(mij);
        if(Z >= p)
        {
            if(Z == p && mij % 5 == 0)
            {
                G << mij;
                return 0;
            }
            else
                dr = mij - 1;
        }
        else
            st = mij + 1;
    }
    if(Z == p)
        G << mij;
    else
        G << "-1";
    return 0;
}