Cod sursa(job #795667)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int n;
int ad;
int r = 50000000;
bool found = false;
vector <int> a;
int main ()
{
fin >> n;
if (!n)
fout << 1;
else{
while (!found)
{
ad = 0;
for (int i = 5; i <= r; i = i * 5)
ad = ad + r / i;
for (unsigned int i = 0; i < a.size(); ++i)
if (a[i] == r)
{
found = true;
break;
}
if (found == true)
{
r = -1;
break;
}
a.push_back (r);
if (ad > n)
r = r / 2;
if (ad < n)
r = r + r / 2;
if (ad == n)
found = true;
if (r % 5 != 0)
r = r + 5 - (r % 5);
}
fout << r;
}
fin.close ();
fout.close ();
return 0;
}