Pagini recente » Cod sursa (job #961457) | Cod sursa (job #1624706) | Cod sursa (job #2225254) | Cod sursa (job #880055) | Cod sursa (job #2077541)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int f(int nr)
{
int k = 0;
while (nr >= 5)
{
k += (nr /= 5);
}
return k;
}
/*int caut_bin(int p)
{
int a = 1,b = pow(10,8) + 1,sol = -1;
int mij;
while (a <= b)
{
mij = (a + b) / 2;
int pos = f(mij);
if (pos > p)
b = mij - 1;
else if (pos == p)
{
sol = mij;
b = mij - 1;
}
else
a = mij + 1;
}
return sol;
}
int r,p,pas,lim = pow(10,8);*/
int caut_bin(int p)
{
int r = 0;
int pas = 1 << 28;
//for (int i = 1;i <= 8;++i)
//lim *= 10;
while (pas != 0)
{
if (f(r + pas) < p)
r += pas;
pas >>= 1;
}
r++;
return r;
}
int p;
int main()
{
in>>p;
int r = caut_bin(p);
if (f(r) != p)
{
r = -1;
}
out<<r;
return 0;
}