Cod sursa(job #1662528)

Utilizator satzaFoldesi Richard satza Data 24 martie 2016 20:25:19
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#define MAXVAL 100000000000000000

using namespace std;

long long p,n;

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

long long nrzero(long long n){
    long long p5,nr0;
    p5=5;nr0=0;
    while(p5<=n && nr0 <= p){
        nr0+=n/p5;
        p5=p5*5;
    }
    return nr0;
}

long long bs(long long l, long long r){
    long long m,nr;
    while(l < r){
        m = l + (r - l)/2;
        nr = nrzero(m);
        if(nr == p) r = m;
        else
            if(nr > p) r = m - 1;
            else l = m + 1;
    }

    nr = nrzero(l);

    if(nr > p) l--;

    nr = nrzero(l);
    if(nr == p) return l;
    return -1;
}

int main()
{
    f>>p;
    g<<bs(1,MAXVAL);
    return 0;
}