Cod sursa(job #1868627)

Utilizator GeorgianBaditaBadita Marin-Georgian GeorgianBadita Data 5 februarie 2017 01:46:52
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#define MIN(A,B) A <= B ? A : B
#define INF 1000000000
using namespace std;

FILE *f = freopen("fact.in", "r", stdin);
FILE *g = freopen("fact.out", "w", stdout);
long long p;
long long verif(long long n) {
    int sum = 0, p = 5;
    while(p <= n) {
        sum += n / p;
        p *= 5;
    }
    return sum;
}
long long caut_binar() {
    long long ls = 0, ld = INF;
    while(ls <= ld) {
        long long mij = (ls + ld) / 2;
        long long val = verif(mij);
        if(val == p)
            return mij - mij%5;
        else if(val < p)
            ls = mij + 1;
        else if(val > p)
            ld = mij - 1;
    }
    return -1;
}
int main() {
    scanf("%lld", &p);
    printf("%lld ", caut_binar());
    //printf("%d", verif(45, 9));
    return 0;
}