python - 如何在 Python 2 中求大数的平方根?

标签 python python-2.7

我正在尝试检查一个大数是否是完全平方数。这是我的代码的相应部分:

x = long(raw_input())
a = sqrt(5 * x ** 2 + 4)
b = sqrt(5 * x **2 - 4)
if long(a) == a or long(b) == b:
    print "YES"
else:
    print "NO" 

但是,当 x 变得太大时,我会收到此错误:

    a = sqrt(5 * x ** 2 + 4)
OverflowError: long int too large to convert to float

谁能告诉我解决这个问题的方法吗?

最佳答案

使用decimal module求大数的平方根。

关于python - 如何在 Python 2 中求大数的平方根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30490439/

相关文章:

Python 正则表达式 DUPLICATE_NAMES 标志

python - 如何像计算机科学家一样思考

python - 仅在Windows中的两个文件夹之间获取大小写不匹配的文件名

python - Pandas:在多索引数据框中设置值

python - 自定义信息提取 (NER) 的最佳方法

python - 如何使用 numpy 将数组拆分为不同维度的子数组?

python-2.7 - df.fillna(0) 命令不会用 0 替换 NaN 值

javascript - 从python登录JS网页

python - 如何在 os walk Python 2.7 中跳过目录

Python 需要 GIL。但是 Jython 和 IronPython 没有。为什么?