Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python2中如何求大数的平方根?_Python_Python 2.7 - Fatal编程技术网

在Python2中如何求大数的平方根?

在Python2中如何求大数的平方根?,python,python-2.7,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

我试图检查一个大的数字是否是一个完美的正方形。以下是我的代码的相应部分:

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

有谁能告诉我一个解决方法吗?

使用来获取大数的平方根

你可以试试。有更好的方法来确定一个数字是否是一个完美的正方形(例如,请参阅)。@erip你的意思是python不能做到这一点?你使用了错误的算法。尝试寻找不依赖于大数字的内容。@xrisk如果您查看链接,它是用Python实现的。无论如何,我认为阿尔沙吉的解决方案更聪明。