据此post ,我们可以通过以下代码得到一个数的所有除数。
for (int i = 1; i <= num; ++i){
if (num % i == 0)
cout << i << endl;
}
例如,数字24
的除数是1 2 3 4 6 8 12 24
。
搜索了一些相关帖子后,我没有找到任何好的解决方案。有没有什么有效的方法可以做到这一点?
我的解决方案:
- 通过 solution 查找给定数的所有质因数.
- 获取这些主要因素的所有可能组合。
不过好像不太好。
最佳答案
因素是成对的。 1
和 24
、2
和 12
、3
和 8
、4
和 6
。
您的算法的改进可能是迭代到 num
的平方根,而不是一直迭代到 num
,然后使用 计算配对因子num/i
.
关于c++ - 有效地获取给定数字的所有除数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26753839/