Pagini recente » Cod sursa (job #1607856) | Cod sursa (job #338849) | Cod sursa (job #733744) | Cod sursa (job #2876366) | Cod sursa (job #284820)
Cod sursa(job #284820)
#include<stdio.h>
#include<math.h>
//#include<conio.h>
long put(long x)
{
long k=0;
while(x%5==0) { k++; x/=5; }
return k;
}
/*long puti(long x, long &k1, long p)
{
long k=0;
while(x%5==0 && k1<p) { x/=5; k1++; }
return k;
}*/
int main()
{
//clrscr();
long r,p,i,t1,t2,k1,k2=0,k;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%ld",&p);
if(p==0) printf("1");
else{
for(i=1; k2<p; i++)
{
k2=(pow(5,i)-1)/4;
t2=pow(5,i);
}
if(k2==p) printf("%ld",t2);
else{
t1=t2/5;
k1=(pow(5,put(t1))-1)/4;
if(p>(k1+k2)/2) for(k=t2; k2>p; k-=5) k2-=put(k);
else
if(p%10==0) { for(k=t1; k1<p; k+=5) k1+=put(k); k+=5; }
else for(k=t1+5; k1<p; k+=5) k1+=put(k);
printf("%ld",k);}}
return 0;
}