Pagini recente » Cod sursa (job #1517543) | Cod sursa (job #1653117) | Cod sursa (job #1820549) | Cod sursa (job #597714) | Cod sursa (job #2784987)
#include <fstream>
#include <climits>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int nr0(int n) // functie care ne spune cate zerouri sunt la sfarsitul lui n!
{
int rez = 0;
int power = 5;
while (power <= n)
{
rez += n / power;
power *= 5;
}
return rez;
}
int main()
{
int p;
f >> p;
if (p == 0)
{
g << 1;
return 0;
}
int st = 1, dr = INT_MAX - 1;
// g << "dr: " << dr << endl;
int mid;
while (st <= dr)
{
mid = (st + dr) / 2;
int zero = nr0(mid);
// g << "zero: " << zero << "\n";
if (zero == p)
{
break;
}
else if (zero > p)
{
dr = mid - 1;
}
else
st = mid + 1;
}
// g << "mid: " << mid << endl;
if (nr0(mid) == p)
{
++mid;
do
{
--mid;
} while (nr0(mid) == p);
g << mid + 1;
}
else
g << -1;
return 0;
}