(3)约数之和
同样的某个数N可以展开为 N = ${p_1}^{a_1} * {p_2}^{a_2} * .. * {p_k}^{a_k}$
约数之和为:$({p_1}^0+{p_1}^1+{p_1}^2+…+{p_1}^{a_1}) * ({p_2}^0+{p_2}^1+{p_2}^2+…+{p_2}^{a_2})…({p_k}^0+{p_k}^1+{p_k}^2+…+{p_k}^{a_k})$
即排列问题,展开后就是每一个约数,且都不相等
//求质因数与上方代码相同
for(auto t : primes)
{
int p = t.first , q = t.second;
ll res = 1;
while(q--) res = (res * p + 1) % P; //这里有一个小技巧><
ans = ans * res % P;
}