Pagini recente » Cod sursa (job #1177168) | Cod sursa (job #1636244) | Cod sursa (job #1790819) | Cod sursa (job #2595536) | Cod sursa (job #281180)
Cod sursa(job #281180)
#include<stdio.h>
FILE *in=fopen("fact.in","rt");
FILE *out=fopen("fact.out","wt");
long int p;
long int zero(long int n,long int f)
{
long int total,nr;
if(n==5) return 1;
total=0;
nr=f;
while(nr<n)
{
total=total+n/nr;
nr=nr*f;
}
return total;
}
long int solutie(long int a,long int b)
{
long int mijloc,num;
mijloc=(a+b)/2;
num=zero(mijloc,5);
if(num==p) return mijloc;
else
if(num<p)
return solutie(mijloc+1,b);
else
return solutie(a,mijloc-1);
}
int main()
{
long int n,k;
fscanf(in,"%ld",&p);
if(p==0) fprintf(out,"1");
else if(p==1) fprintf(out,"5");
else if(p==2) fprintf(out,"10");
else
{
k=solutie(15,2000000000);
while(p==zero(k,5)) k--;
fprintf(out,"%ld",k+1);
}
return 0;
}