首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >素因式分解

素因式分解
EN

Stack Overflow用户
提问于 2015-12-02 14:09:53
回答 1查看 134关注 0票数 2

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

代码语言:javascript
复制
void primeFactor(int number){
    if (number == 1)return;

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

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

它对小的数字很好,但是当我输入一个大的数字,像809800987876,我得到一个-1后,大约3个因素。

这是809800987876的样本输出。

代码语言:javascript
复制
> 2 2 486957767
> -1

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-02 14:13:43

你的int满溢了。在典型系统中,int的最大值为2147483647。809800987876比那个大,所以它就溢出了。您可以使用long long,它的最大值至少为9223372036854775807。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34044835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档