2016-04-12 32 views
1

我需要从表达式根(y)中确定x。如何获得一个非常大的整数的平方根?

“Y”的范围与其分离值最大为10^1000。 我以正常的方式解决了问题,我看到了正确的结果。但是当Y很大时,程序输出错误的答案。

#include<stdio.h> 
#include<math.h> 
int main() 
{ 
    long long int x,y; 
    scanf("%lld",&y); 
    x=sqrt(y); 
    printf("%lld",x); 
    return 0; 
} 
+1

这个问题的想法,那你是自己实现开方的大数字。 –

+0

676 = 4 * 169 =(2^2)*(13^13)= 22^132 ,因此 √676=√(4⋅169)=√2^ 2 *√13^ 2 = 26 –

+2

如果你真的想要做的数字大到'10^1000',那么'长'就没有足够大的地方。 – lurker

回答

2

使用一些BIGNUM库,例如GMP

+0

我预见了一些大规模downvoting这个答案.. –

+0

我错了,显然:) –

+0

我也觉得这个答案有点稀疏,但我不完全确定什么更多可以添加... – CodeMouse92

相关问题