Pagini recente » Cod sursa (job #303119) | Cod sursa (job #2722768) | Cod sursa (job #72183) | Cod sursa (job #2449567) | Cod sursa (job #1891007)
#include <iostream>
#include <fstream>
using namespace std;
int x, nr0, p, st, mid, dr, i, nr2, nr_1;
int main () {
ifstream fin("fact.in");
ofstream fout("fact.out");
fin >> p;
st = 1; dr = 1000;
//fout << st << " " << mid << " " << dr << "\n";
while (st <= dr)
{
mid = st + (dr-st)/2;
x = mid; nr0 = 0;
while (x >= 5)
{
nr0 += x/5;
x /= 5;
}
//fout << st << " " << mid << " " << dr << " " << nr0 << "\n";
if (nr0 >= p) dr = mid-1;
if (nr0 < p) st = mid+1;
}
x = mid; nr0 = 0;
while (x >= 5)
{ nr0 += x/5; x /= 5; }
x = mid+1;
while (x >= 5)
{ nr2 += x/5; x /= 5; }
x = mid-1;
while (x >= 5)
{ nr_1 += x/5; x /= 5; }
//fout << mid << " " << nr_1 << " " << nr0 << " " << nr2 << "\n";
if (nr_1 != p && nr0 != p && nr2 != p) mid = -1;
else if (mid == 1) mid = mid;
else if (nr_1 == p) mid--;
else if (nr2 == p && nr0 != p) mid++;
fout << mid << "\n";
}