根据这篇文章,我们可以通过以下代码获得一个数字的所有除数。
for (int i = 1; i <= num; ++i){ if (num % i == 0) cout << i << endl; }
例如,数的约数24是1 2 3 4 6 8 12 24。
24
1 2 3 4 6 8 12 24
在搜索了一些相关帖子之后,我没有找到任何好的解决方案。有什么有效的方法可以做到这一点吗?
我的解决方案:
但是,这似乎不是一个好方法。
因素是成对的。1和24,2和12,3和8,4和6。
1
2
12
3
8
4
6
对算法的改进可能是迭代到的平方根,num而不是一直迭代到的平方根num,然后使用来计算成对因子num / i。
num
num / i