枚举因数


本文总阅读量

计算因数之和、素数判断、素数筛选、分解质因数都离不开枚举因数。为了快速枚举因数,我们采用的方法是两个两个寻找,其数学思想为:因数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的最大值等于平方根或接近平方根
平方根: 如果一个数x的平方等于a,即x2=a(a0), 那么这个数x叫做a的平方根。
c++中,可以用sqrt()函数计算平方根。
所以,枚举n的因数1的写法如下:

for(int i = 1; i <= sqrt(n); i++){
	if(n%i==0){
		...
	}
}

知识点拓展

因数求和
枚举法判断素数


本站总访问量