因数求和
本文总阅读量次
利用枚举因数的技巧,求一个数的因数之和,写法如下:
sum = 0;
for(int i = 1; i <= sqrt(n); i++){ //枚举因数1
if(n % i == 0){
if(i * i == n) sum += i;
else sum += i + n / i; //因数2 = n / i
}
}
如果要计算因数个数,只要把sum += i
改为sum++
, sum += i + n / i
改为 sum += 2
。