Pagini recente » Cod sursa (job #2163900) | Cod sursa (job #1610194) | Cod sursa (job #1722529) | Cod sursa (job #844251) | Cod sursa (job #795670)
Cod sursa(job #795670)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int n;
int ad;
vector <int> a;
int main ()
{
fin >> n;
if (!n)
fout << 1;
else{
int st = 0, dr = 1000000000, mid;
while (st != dr)
{
mid = (st + dr) / 2;
ad = 0;
for (int i = 5; i <= mid; i = i * 5)
ad = ad + mid / i;
if (ad < n)
st = mid + 1;
else if (ad > n)
dr = mid - 1;
else if (ad == n)
dr = mid;
}
ad = 0;
for (int i = 5; i <= st; i = i * 5)
ad = ad + st / i;
if (ad != n) fout << -1;
else fout << st;
}
fin.close ();
fout.close ();
return 0;
}
/*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);*/