Pagini recente » Cod sursa (job #3039844) | Cod sursa (job #1338554) | Cod sursa (job #2021195) | Cod sursa (job #1260607) | Cod sursa (job #2219731)
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <limits.h>
#define LL long long
LL nrZrsFct(LL n){
LL x,ans,i,p;
x=floor(log(n)/log(5));
ans=0,p=1;
for(i=1;i<=x;i++){
p*=5;
ans+=floor((double)n/p);
}
return ans;
}
LL solve(int p,LL li,LL ls){
int res;
LL mij;
mij=li/2+ls/2+1*(ls%2==1 && li%2==1);
res=nrZrsFct(mij);
if (res==p)
return mij;
else if (li==ls)
return -1;
else if(res>p)
return solve(p,li,mij-1);
else
return solve(p,mij+1,ls);
}
int main(){
FILE*fi,*fo;
LL p;
LL n,a=0,b=LONG_LONG_MAX;
fi=fopen("fact.in","rt");
fo=fopen("fact.out","wt");
fscanf(fi,"%lli",&p);
fclose(fi);
n=solve(p,a,b);
if (abs(n)!=1)
n=(n/5)*5;
fprintf(fo,"%lld",n);
fclose(fo);
return 0;
}