| 1 | initial version |
Your n is not the square of 2^128:
sage: n=115792089237316195423570985008687907852837564279074904382605163141518161494337
sage: (2^128)^2 - n
432420386565659656852420866394968145599
But, if you use float, then the precision of floats (53 bits of precision) is not enough to see a difference:
sage: float((2^128)^2) - float(n)
0.0
So, don't use float and don't use math.sqrt which returns float to compute such equalities or differences:
sage: type(math.sqrt(n))
<class 'float'>
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.