Cod sursa(job #3350576)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 9 aprilie 2026 19:53:48
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>

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

int cate0(int n)
{
    int put5 = 1, total = 0;
    while (put5 <= n / 5)
    {
        put5 *= 5;
        total += n / put5;
    }
    return total;
}

int main()
{
    int p;
    f >> p;
    int st = 1, dr = 2e9;
    int ans = -1;
    while (st <= dr)
    {
        int mid = st + (dr - st) / 2; /// e echivalent cu  (st+dr)/2;
        if (cate0(mid) > p)
        {
            dr = mid - 1; ///trebuie sa caut un numar mai mic
        }
        else if (cate0(mid) < p)
        {
            st = mid + 1;
        }
        else
        {
            ///nr de 0 de la finalul lui n! este p
            ans = mid;
            dr = mid - 1;
        }
    }
    g << ans;
    return 0;

}