Pagini recente » Cod sursa (job #1433593) | Cod sursa (job #3259619) | Cod sursa (job #903375) | Cod sursa (job #3273137) | Cod sursa (job #314526)
Cod sursa(job #314526)
#include<stdio.h>
using namespace std;
long long z;
long long kmax(long long n)
{long long x=n,kt;
kt=0;
while(x>=5) {x/=5;kt++;}
return kt;
}
long long calculare(long long n)
{long long ptemp=5,i,sumz=0,k;
k=kmax(n);
for(i=1;i<=k;i++)
{sumz+=(int)(n/ptemp);
ptemp*=5;
}
return sumz;
}
long long cautare(long long inc, long long sf)
{long long mij=(inc+sf)>>1,s;
mij-=mij%2;
s=calculare(mij);
if(inc==sf) return mij+1;
//else if(z==s) return mij;
//else if(inc>sf) return -1;
else if(z>s) return cautare(mij+1,sf);
else return cautare(inc,mij-1);
//else if (z==s) return mij;
// else if(inc>sf) return -1;
}
int main()
{long long nr=10000000000LL,rasp;
FILE*f=fopen("fact.in","r");
FILE*g=fopen("fact.out","w");
fscanf(f,"%lld",&z);
if(z==0)fprintf(g,"0\n");
else
{rasp=cautare(0,nr);
/*if((rasp+1)%5==0)
fprintf(g,"%lld\n",rasp+1);
else if((rasp-1)%5==0)
fprintf(g,"%lld\n",rasp-1);
else if((rasp-2)%5==0)
fprintf(g,"%lld\n",rasp-2);
else if((rasp+2)%5==0)
fprintf(g,"%lld\n",rasp+2);
else*/ fprintf(g,"%lld\n",rasp);
}
fclose(f);
fclose(g);
return 0;
}