小编典典

有效地获取给定数字的所有除数

algorithm

根据这篇文章,我们可以通过以下代码获得一个数字的所有除数。

for (int i = 1; i <= num; ++i){
    if (num % i == 0)
        cout << i << endl;
}

例如,数的约数241 2 3 4 6 8 12 24

在搜索了一些相关帖子之后,我没有找到任何好的解决方案。有什么有效的方法可以做到这一点吗?

我的解决方案:

  1. 通过该找到给定数字的所有素数。
  2. 获取这些主要因素的所有可能组合。

但是,这似乎不是一个好方法。


阅读 291

收藏
2020-07-28

共1个答案

小编典典

因素是成对的。1242123846

对算法的改进可能是迭代到的平方根,num而不是一直迭代到的平方根num,然后使用来计算成对因子num / i

2020-07-28