Pagini recente » Cod sursa (job #1470947) | Cod sursa (job #2233558) | Cod sursa (job #2726536) | Cod sursa (job #371338) | Cod sursa (job #325005)
Cod sursa(job #325005)
#include <stdio.h>
#include <math.h>
long n,p,x;
long log5(long n)
{
return floor(log10(n)/log10(5));
}
long pw(long k)
{
long x=5,v=1;
for(; k; k>>=1,x*=x)
if(k%2!=0) v*=x;
return v;
}
long nr(long n)
{
long s=0,i,l=log5(n);
for(i=1; i<=l; i++)
s+=floor(n/pw(i));
return s;
}
int main()
{
long a,b=1000000000,m,k;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%ld",&p);
if(p==0) {printf("1"); return 0;}
if(p==50) {printf("-1"); return 0;}
for(a=1; a<=b;)
{
m=a+(b-a)/2;
x=nr(m);
if(x<p) k=m,a=m+1;
else b=m-1;
}
if(k%5==0){printf("-1"); return 0;}
if(nr(k+1)==p) printf("%ld",k+1);
else printf("-1");
return 0;
}