gpt4 book ai didi

c++ - 质因数分解

转载 作者:搜寻专家 更新时间:2023-10-31 02:18:55 36 4
gpt4 key购买 nike

我这里有一个简单的因式分解算法。

void primeFactor(int number){
if (number == 1)return;

int x = 2;
while (number%x != 0)x++;

cout << x << endl;
primeFactor(number / x);
}

它适用于较小的数字,但每当我输入 809800987876 这样的大数字时,我在大约 3 个因数后得到 -1。

所以这是 809800987876 的示例输出。

> 2 2 486957767
> -1

我该如何解决这个问题?

最佳答案

您正在溢出 int。在典型系统上,int 的最大值为 2147483647。809800987876 大于该值,因此会溢出。您可以使用 long long,它的最大值至少为 9223372036854775807。

关于c++ - 质因数分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34044835/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com