(1)一个大于1的正整数N,如果它的标准分解式为:
,那么它的正因数个数为
对于这个式子 如果我们想要奇因子的个数 那么在primes[i] % 2 != 0时再算。。==0时continue就好了 偶因子同理
代码实现:
LL cnt = 0; for(int i=0; i < ans && primes[i] * primes[i] <= S; i++) //ans是primes中质数的个数 { LL cnt2 = 0; while(S % primes[i] == 0) { cnt2++; S /= primes[i]; } if(S > 0){ base[cnt] = primes[i]; //base中是底数 mi[cnt++] = cnt2; //cnt2是幂的个数 } }
(2) 它的全体正因数之和为