Cod sursa(job #2076080)

Utilizator AndreiVisoiuAndrei Visoiu AndreiVisoiu Data 26 noiembrie 2017 09:47:30
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

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

long long p, rasp;

long long zeroFinal(long long n) {
    long long r = 0, exp = 5;
    while (exp <= n) {
        r += n / exp;
        exp *= 5;
    }

    return r;
}

long long cauta(const long long s, const long long d) {
    long long mij = (s+d)/2;
    if(zeroFinal(mij) == p) return (mij-mij%5);
    else {
        if(mij == s) return -1;
        else if(zeroFinal(mij) >= p) return cauta(s, mij-1);
        else return cauta (mij+1, d);
    }
}

int main()
{
    in >> p;
    if(p == 0) { out << 1; return 0; }
    rasp = cauta(0, 1000000003);
    out << rasp << "\n";
    return 0;
}