Cod sursa(job #2133315)

Utilizator gdv26Vasile Dorin gdv26 Data 16 februarie 2018 19:29:43
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long long nr_zerouri(long n){

    long nr = 0;
    for(int i = 5; i <= n; i *= 5){
        nr += n / i;
    }
    return nr;
}

int main()
{
    long p;
    fin >> p;

    long raspuns = -1;
    long stanga = 1, dreapta = LONG_MAX;
    long mijloc;

    while(stanga <= dreapta){
        mijloc = stanga + (dreapta - stanga)/2;
        if(nr_zerouri(mijloc) >= p){
            raspuns = mijloc;
            dreapta = mijloc - 1;
        }
        else stanga = mijloc + 1;
    }

    if(nr_zerouri(raspuns) == p)
        fout << raspuns;
    else fout << -1;

    return 0;
}