Pagini recente » Cod sursa (job #2180066) | Cod sursa (job #1340064) | Cod sursa (job #2950682) | Cod sursa (job #196244) | Cod sursa (job #324319)
Cod sursa(job #324319)
#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 pow(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;
for(int i=1; i<=log5(n); i++)
s+=floor(n/pow(i));
return s;
}
unsigned long bs()
{
unsigned long a=0,b=100000000000,m;
while(a<=b)
{
m=(a+b)/2;
x=nr(m);
if(x<p) a=m+1;
else
if(x>p) b=m-1;
if(x==p) return m;
}
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lu",&p);
printf("%lu",bs());
return 0;
}