我正在尝试用 C++ 编写素数查找器代码。我有一个我很满意的正常运行的程序,但是当我尝试计算数十亿的素数时,我收到如下错误消息:
"Implicit conversion from 'long' to 'int' changes value from 10000000001 to 1410065409" .
即使在数十亿的情况下,它的运行速度也相当快,所以我想测试极限,但这个数字的变化阻止了它。
最佳答案
您需要使用 long
类型(可以容纳比 int 更大的数字)。
下面是 int
溢出的例子:
int test1 = 10;
int test2 = test1 * 89000000;
cout << test2;
长整数
long test1 = 10;
long test2 = test1 * 89000000;
cout << test2;
结果是正确的。
关于c++ - 在 C++ 中计算大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38690852/