Pagini recente » Cod sursa (job #12519) | Cod sursa (job #1011137) | Cod sursa (job #540865) | Cod sursa (job #2879594) | Cod sursa (job #1335093)
#include <cstdio>
using namespace std;
int fix (unsigned long long n){
int sol = 0;
while (n%5!=0)
{sol++;
n--;}
return sol;
}
int sol_try (unsigned long long n){
int sol = 0 ;
while (n){
n/=5;
sol+=n;
}
return sol;}
void caut_binar (int n){
unsigned long long st= 0, dr=2e10;
unsigned long long mid = st + (dr-st)/2;
int gen = 0;
unsigned long long x;
while (st<=dr&&!gen){
mid = st + (dr-st)/2;
x=sol_try(mid);
if (x==n)
gen=1;
else{
if (x<n)
st=mid+1;
else if (x>n) dr=mid-1;}
}
if (gen)
printf ("%d", mid-fix(mid));
else printf ("%d", -1);
}
int main()
{freopen ("fact.in", "r", stdin);
freopen ("fact.out", "w", stdout);
int n,i;
scanf ("%d", &n);
if (n==0)
printf ("%d", 1);
else
caut_binar(n);
}