Pagini recente » Cod sursa (job #2462861) | Cod sursa (job #3341914) | Cod sursa (job #2924306) | Cod sursa (job #3354333) | Cod sursa (job #3350576)
#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;
}