#(2^((2^(w-1))-1))*(2-(2^-t))
#2^128倍精度
#(2^((2^(519-1))-1))*(2-(2^-10889035741470030830827987437816582766072))
from decimal import *
getcontext().prec = 100
from decimal import localcontext
with localcontext() as ctx:
print(ctx.Emax) # デフォルトの指数上限は999999なので、今回の計算だと足りない
ctx.Emax = 10**10**5 # 指数上限を増やす
#指数部
w = 519
#仮数部
t = 10889035741470030830827987437816582766072
a = ctx.power(2,(w - 1))
b = ctx.power(2,(a - 1))
print(b)
c = t * -1
d = ctx.power(2,c)
print(d)
e = (b * 2 - b * d)
#最大値
print("最大値")
print(e)
#必要に応じて有効桁を調整する
format_str = "{:.1e}".format(e)
print(format_str)
f = e.log10()
#桁数-1
# print("桁数-1")
# print(f.quantize(Decimal('0'), rounding=ROUND_FLOOR))
#桁数
# print("桁数")
# print(f.quantize(Decimal('0'), rounding=ROUND_CEILING))
g = f.log10()
#桁数の桁数-1
# print("桁数の桁数-1")
# print(g.quantize(Decimal('0'), rounding=ROUND_FLOOR))
#ウルフラムアルファ確認用
print("ウルフラムアルファ確認用")
print(g)
h = ctx.power(2,t)
i = h.log10()
#有効桁数
print("有効桁数")
print(i.quantize(Decimal('0'), rounding=ROUND_FLOOR))
IygyXigoMl4ody0xKSktMSkpKigyLSgyXi10KSkKIzJeMTI45YCN57K+5bqmCiMoMl4oKDJeKDUxOS0xKSktMSkpKigyLSgyXi0xMDg4OTAzNTc0MTQ3MDAzMDgzMDgyNzk4NzQzNzgxNjU4Mjc2NjA3MikpCmZyb20gZGVjaW1hbCBpbXBvcnQgKgpnZXRjb250ZXh0KCkucHJlYyA9IDEwMApmcm9tIGRlY2ltYWwgaW1wb3J0IGxvY2FsY29udGV4dAp3aXRoIGxvY2FsY29udGV4dCgpIGFzIGN0eDoKICAgIHByaW50KGN0eC5FbWF4KSAjIOODh+ODleOCqeODq+ODiOOBruaMh+aVsOS4iumZkOOBrzk5OTk5OeOBquOBruOBp+OAgeS7iuWbnuOBruioiOeul+OBoOOBqOi2s+OCiuOBquOBhAogICAgY3R4LkVtYXggPSAxMCoqMTAqKjUgIyDmjIfmlbDkuIrpmZDjgpLlopfjgoTjgZkKICAgICPmjIfmlbDpg6gKICAgIHcgPSA1MTkKICAgICPku67mlbDpg6gKICAgIHQgPSAxMDg4OTAzNTc0MTQ3MDAzMDgzMDgyNzk4NzQzNzgxNjU4Mjc2NjA3MgogICAgYSA9IGN0eC5wb3dlcigyLCh3IC0gMSkpCiAgICBiID0gY3R4LnBvd2VyKDIsKGEgLSAxKSkKICAgIHByaW50KGIpCiAgICBjID0gdCAqIC0xCiAgICBkID0gY3R4LnBvd2VyKDIsYykKICAgIHByaW50KGQpCiAgICBlID0gKGIgKiAyIC0gYiAqIGQpCiAgICAj5pyA5aSn5YCkCiAgICBwcmludCgi5pyA5aSn5YCkIikKICAgIHByaW50KGUpCiAgICAj5b+F6KaB44Gr5b+c44GY44Gm5pyJ5Yq55qGB44KS6Kq/5pW044GZ44KLCiAgICBmb3JtYXRfc3RyID0gIns6LjFlfSIuZm9ybWF0KGUpCiAgICBwcmludChmb3JtYXRfc3RyKQogICAgZiA9IGUubG9nMTAoKQogICAgI+ahgeaVsC0xCiMgICBwcmludCgi5qGB5pWwLTEiKQojICAgcHJpbnQoZi5xdWFudGl6ZShEZWNpbWFsKCcwJyksIHJvdW5kaW5nPVJPVU5EX0ZMT09SKSkKICAgICPmoYHmlbAKIyAgICBwcmludCgi5qGB5pWwIikKIyAgICBwcmludChmLnF1YW50aXplKERlY2ltYWwoJzAnKSwgcm91bmRpbmc9Uk9VTkRfQ0VJTElORykpCiAgICBnID0gZi5sb2cxMCgpCiAgICAj5qGB5pWw44Gu5qGB5pWwLTEKIyAgICBwcmludCgi5qGB5pWw44Gu5qGB5pWwLTEiKQojICAgIHByaW50KGcucXVhbnRpemUoRGVjaW1hbCgnMCcpLCByb3VuZGluZz1ST1VORF9GTE9PUikpCiAgICAj44Km44Or44OV44Op44Og44Ki44Or44OV44Kh56K66KqN55SoCiAgICBwcmludCgi44Km44Or44OV44Op44Og44Ki44Or44OV44Kh56K66KqN55SoIikKICAgIHByaW50KGcpCiAgICBoID0gY3R4LnBvd2VyKDIsdCkKICAgIGkgPSBoLmxvZzEwKCkKICAgICPmnInlirnmoYHmlbAKICAgIHByaW50KCLmnInlirnmoYHmlbAiKQogICAgcHJpbnQoaS5xdWFudGl6ZShEZWNpbWFsKCcwJyksIHJvdW5kaW5nPVJPVU5EX0ZMT09SKSkKIA==