Cod sursa(job #853700)

Utilizator whoiscrisCristian Plop whoiscris Data 12 ianuarie 2013 13:19:51
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
#define MAX 1000000000

using namespace std;

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

int nrzeroes(long long int n){

    long long int result = 0;

    while(n){

        result += n/5;
        n /= 5;
    }
    return result;
}

int binary_zero(long long int p){

    long long int st = 1, dr = MAX,mid;
    long long int c;

    while(st < dr){

        mid = (st + dr)/2;
        c = nrzeroes(mid);
        if(c < p)
            st = mid + 1;
        else
            dr = mid;
    }
    mid = (st+dr)/2;
    if(nrzeroes(mid) < p)
        mid--;
    if(nrzeroes(mid) != p)
        return -1;
    return mid;
}

long long int p;

int main()
{
    fin>>p;
    fout<<binary_zero(p);

    return 0;
}