Pagini recente » Istoria paginii runda/simulare_oji_2023_clasa_9_15_martie | Cod sursa (job #138729) | Cod sursa (job #1731418)
#include <fstream>
std::ifstream f("fact.in");
std::ofstream g("fact.out");
int numarZerouri(int x) //ale lui x factorial
{
int p = 5, nr = 0;
while (x / p > 0)
{
nr += x / p;
p = p * 5;
}
return nr;
}
int main()
{
int n, p, rezultat;
int maxim = 500000001;
int mijloc;
bool ok = false;
n = 1;
f >> p;
while (n < maxim)
{
mijloc = (n + maxim) / 2;
if (numarZerouri(mijloc) < p)
{
n = mijloc + 1;
}
else if (numarZerouri(mijloc) >= p)
{
if (numarZerouri(mijloc) == p)
{
ok = true;
rezultat = mijloc;
}
maxim = mijloc - 1;
}
}
if (ok == true)
g << rezultat;
else
g << -1;
}