Pagini recente » Borderou de evaluare (job #2683121) | Arhiva Educationala | Clasamentul arhivei educationale | Borderou de evaluare (job #2214892) | Cod sursa (job #1074248)
#include <fstream>
#include <iostream>
using namespace std;
ifstream in ("fact.in");
ofstream out("fact.out");
int nr_zerouri (int a)
{
int suma = 0, p = 5;
while (p <= a)
{
suma += a / p;
p = p * 5;
}
return suma;
}
int main()
{
int n; in >> n;
int stanga = 1; int dreapta = 500000000;
if (n == 0)
{
out << 1;
return 0;
}
int middle = 0;
while (stanga <= dreapta)
{
middle = (dreapta + stanga) >> 1;
int zerouri = nr_zerouri(middle);
if (zerouri == n && middle % 5 == 0)
{
out << middle;
return 0;
}
else
if (zerouri >= n)
dreapta = middle;
else
stanga = middle;
}
return 0;
}