Cod sursa(job #3301454)

Utilizator tavy_codingAlbuica Ioan Octavian tavy_coding Data 26 iunie 2025 16:18:32
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>

using namespace std;

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

long long binary_search(long long p)
{
    long long l = 0, r = 500000000, n = -1, nr = 0;
    while (l <= r) {
        int m = (l + r) / 2;
        nr = find_5pow(m);

        if (nr == p) {
            n = m;
            r = m - 1;
        } else if (nr < p) {
            l = m + 1;
        } else if (nr > p) {
            r = m - 1;
        }
    }
    return n;
}

int main()
{
    FILE *file_in = fopen("fact.in", "r");
    FILE *file_out = fopen("fact.out", "w");
    long long p;
    fscanf(file_in, "%lld", &p);
    if (p == 0) {
        fprintf(file_out, "1");
        return 0;
    }

    fprintf(file_out, "%lld\n", binary_search(p));
}