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

标签 c++ algorithm math factorization

据此post ,我们可以通过以下代码得到一个数的所有除数。

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

例如,数字24的除数是1 2 3 4 6 8 12 24

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

我的解决方案:

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

不过好像不太好。

最佳答案

因素是成对的。 1242123846

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

关于c++ - 有效地获取给定数字的所有除数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26753839/

相关文章:

c++ - 主机中同一 VST 乐器的多个实例播放相同的 MIDI 声音

c++ - 用 C++/GTK 制作音乐播放器

algorithm - 找到以下算法的递归关系方程

javascript - 种子随机数

c++ - 多个函数调用的时间

algorithm - 不同时间到达进程的甘特图循环调度

javascript - float 到字符串的转换 - JS

java - 两个(小)数相乘给出负数解,而不是溢出……那为什么呢?

python - 类型错误 : '>' not supported between instances of 'list' and 'int'

c++ - 为什么当我删除 std::vector 的成员时我的程序崩溃