题目大意:给你一个数n的因数及其指数pi,qi,对于其所有的因数mi,求φ(mi)*n/mi之和。

题解:题中给了一个求欧拉函数的公式
根据这个公式,可以将第二个样例变形为
其对应因数为1,2,22,3,33,2131,2231,2132,2232可以很容易看出来,因子的指数与乘积的项无关,重复项数与其指数q有关,那么其乘积项只和其存不存在有关,再化简一下,如果用xi来表示该项存不存在,则每一项可化简为
由于质因子最多只有20项,所以dfs最多有220个状态,不会超时
dfs简易代码为
long long dfs(int i){
if(i==m+1){
return 1;
}
long long res = pow(p[i],q[i])*dfs(i+1)+pow(p[i],q[i]-1)*(p[i]-1)*q[i]*dfs(i+1);//要注意爆longlong的问题
return res;
}