Pagini recente » Cod sursa (job #1107889) | Cod sursa (job #1878822) | Cod sursa (job #546222) | Cod sursa (job #2358345) | Cod sursa (job #314504)
Cod sursa(job #314504)
#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=100000000LL,rasp;
FILE*f=fopen("fact.in","r");
FILE*g=fopen("fact.out","w");
fscanf(f,"%llu",&z);
if(z==0)fprintf(g,"0\n");
rasp=cautare(0,nr);
fprintf(g,"%d\n",rasp);
fclose(f);
fclose(g);
return 0;
}