枚举因数
本文总阅读量次
计算因数之和、素数判断、素数筛选、分解质因数都离不开枚举因数。为了快速枚举因数,我们采用的方法是两个两个寻找,其数学思想为:因数1×因数2=乘积。所以枚举因数1,因数2=乘积÷因数1。
枚举需要考虑范围,那么因数1的范围是多少?
24的因数如下:
24 |
---|
(1,24) |
(2,12) |
(3,8) |
(4,6) |
36的因数如下:
36 |
---|
(1,36) |
(2,18) |
(3,12) |
(4,9) |
(6,6) |
通过观察可以发现因数1的最大值等于平方根或接近平方根。
平方根: 如果一个数
在
所以,枚举
for(int i = 1; i <= sqrt(n); i++){
if(n%i==0){
...
}
}