Pagini recente » Atasamentele paginii Tower | Diferente pentru problema/manuscris intre reviziile 7 si 6 | Monitorul de evaluare | Cod sursa (job #2669542) | Cod sursa (job #1520556)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int N, P;
int nr;
int zeroes(int x)
{
int ans = 0;
int pow = 5;
while (pow <= x)
{
ans += x / pow;
pow *= 5;
}
return ans;
}
int cautare(int P)
{
int ls = 1;
int ld = 10000000;
int mid;
while (ls <= ld)
{
mid = (ls + ld) / 2;
if (zeroes(mid) >= P)
{
ld = mid - 1;
}
else
{
ls = mid + 1;
}
}
return mid;
}
int main()
{
f >> P;
nr = cautare(P);
if(zeroes(nr) == P)
{
g << nr << '\n';
}
else
{
g << "-1\n";
}
return 0;
}