Pagini recente » Cod sursa (job #2194999) | Autentificare | Cod sursa (job #973511) | Cod sursa (job #3185822) | Cod sursa (job #314505)
Cod sursa(job #314505)
#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;
s=calculare(mij);
if(z==s&&inc==sf) return mij;
else if(inc>sf) return -1;
else if(z>s) return cautare(mij+1,sf);
else return cautare(inc,mij-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");
rasp=cautare(0,nr);
fprintf(g,"%lld\n",rasp);
fclose(f);
fclose(g);
return 0;
}