(1)一个大于1的正整数N,如果它的标准分解式为:
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D124/sign=ae84eec8b4fd5266a32b38169f189799/f703738da97739129c546742fa198618367ae2a7.jpg)
,那么它的正因数个数为
![](https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D238/sign=d7c6a19a9c510fb37c197094e133c893/b151f8198618367aebbf90fe2c738bd4b31ce5db.jpg)
代码实现:
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) 它的全体正因数之和为