Pagini recente » Cod sursa (job #1177340) | Cod sursa (job #2934697) | Cod sursa (job #326547) | Cod sursa (job #1907732) | Cod sursa (job #326549)
Cod sursa(job #326549)
#include <stdio.h>
#include <math.h>
long long n,p,x;
long long log5(long long n)
{
return floor(log10(n)/log10(5));
}
long long pw(long long k)
{
long long x=5,v=1;
for(; k; k>>=1,x*=x)
if(k%2!=0) v*=x;
return v;
}
long long nr(long long n)
{
long long s=0,i,l=log5(n);
for(i=1; i<=l; i++)
s+=floor(n/pw(i));
return s;
}
long long met2(int n)
{
long c=0,d=1,r=1;
while(r>0)
{
d*=5;
r=n/d;
c+=r;
}
return c;
}
int main()
{
long long m,last,i=1,j=10000000000;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);
if(p==0) {printf("1"); return 0;}
for(i=1; i<=j;)
{
m=i+(j-i)/2;
if(p<=met2(m)) last=m,j=m-1;
else i=m+1;
}
if(met2(last)==p) printf("%d",last);
else printf("-1");
return 0;
}