我正在尝试用C ++编写一个主要查找器。我有一个功能正常的程序,我很满意,但当我尝试计算数十亿的素数时,我收到类似这样的错误消息:
“从'long'到'int'的隐式转换将值从10000000001更改为1410065409”。
即使在数十亿的情况下,它的工作速度也相当快,所以我想测试极限,但是这个数字的变化就会停止。
答案 0 :(得分:1)
您需要使用long
类型(可以包含比int更大的数字)。
以下是int
溢出的示例:
int test1 = 10;
int test2 = test1 * 89000000;
cout << test2;
长整数
long test1 = 10;
long test2 = test1 * 89000000;
cout << test2;
结果是正确的。