Cod sursa(job #3311565)

Utilizator Cristian2010Baciu Cristian Cristian2010 Data 23 septembrie 2025 12:17:41
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin("factorial.in");
ofstream fout("factorial.out");
long long P;
fin >> P;
if (P == 0)
{
    fout << -1 << "\n";
    return 0;
}
long long left = 1, right = 5 * P; // limita superioară simplă
long long answer = -1;
while (left <= right)
{
    long long mid = (left + right) / 2;
    long long count = 0;
    long long divisor = 5;
    while (mid / divisor > 0)
    {
        count += mid / divisor;
        divisor *= 5;
    }
    if (count == P)
    {
        answer = mid;
        right = mid - 1;
    }
    else
        if (count < P)
            left = mid + 1;
        else
            right = mid - 1;
}
fout << answer << "\n";
}