Pagini recente » Cod sursa (job #1521694) | Cod sursa (job #3205965) | Cod sursa (job #199917) | Cod sursa (job #1177231) | Cod sursa (job #1027239)
#include<iostream>
#include<stdio.h>
#define Nmax 100000000
using namespace std;
long long P;
int main()
{
long long upper_bound = 200000000;
long long lower_bound = 1;
freopen("fact.in","r", stdin);
freopen("fact.out", "w", stdout);
cin >> P;
if(P == 0)
{
cout << 1 << endl;
return 0;
}
while(lower_bound <= upper_bound)
{
long long nr5 = 0;
long long mid = ( lower_bound + upper_bound ) / 2;
for(long long putere5 = 5; mid / putere5; putere5 *= 5)
nr5 += mid / putere5;
if(nr5 == P)
{
if(mid % 10 > 5)
mid = mid / 10 * 10 + 5;
else
if(mid % 10 < 5)
mid = mid / 10 * 10;
cout << mid;
break;
}
else
if(nr5 > P)
{
upper_bound = mid - 1;
}
else
{
lower_bound = mid + 1;
}
}
if(lower_bound > upper_bound)
cout << -1;
return 0;
}