Pagini recente » Cod sursa (job #2242365) | Cod sursa (job #3197736) | Cod sursa (job #972586) | Cod sursa (job #46435) | Cod sursa (job #324990)
Cod sursa(job #324990)
#include <stdio.h>
#include <math.h>
unsigned long n,p,x;
unsigned long log5(unsigned long n)
{
return floor(log10(n)/log10(5));
}
unsigned long pw(unsigned long k)
{
unsigned long x=5,v=1;
for(; k; k>>=1,x*=x)
if(k%2!=0) v*=x;
return v;
}
unsigned long nr(unsigned long n)
{
unsigned long s=0,i,l=log5(n);
for(i=1; i<=l; i++)
s+=floor(n/pw(i));
return s;
}
int main()
{
unsigned long long a=0,b=10000000000,m,i;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lu",&p);
while(a<=b)
{
m=(a+b)/2;
x=nr(m);
if(x<p) a=m+1;
else b=m-1;
if(x==p) {printf("%d",m); return 0;}
}
}