Pagini recente » Rating bogdan horia-daniel (falselight) | Cod sursa (job #785249) | Cod sursa (job #2833981) | Cod sursa (job #1638536) | Cod sursa (job #1876052)
#include <fstream>
#define MAX_FACT 500000000
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
unsigned long long getZeros(unsigned long long n)
{
unsigned long long power = 5;
unsigned long long zeros=0;
while (n / power != 0)
{
zeros += n / power;
power *= 5;
}
return zeros;
}
int main()
{
bool found = false;
unsigned long long middle = 0;
unsigned long long input=0;
unsigned long long n = 0, start = 0, end = MAX_FACT;
fin >> n;
if (n == 0){fout << 1; return 0;}
if (n == 1) { fout << 5; return 0; }
while (start <= end)
{
middle = (start + end) / 2;
if (n == getZeros(middle)) { found = true; break; }
if (getZeros(middle) > n)
{
end = middle - 1;
}
else
{
start = middle + 1;
}
}
if (found)
{
if (middle % 10 >= 5)
{
fout << middle / 10 << 5;
}
else
{
fout << middle / 10 << 0;
}
}
else fout << -1;
return 0;
}