b[n]表示1到n-1与n的gcd的和,所以dp[n]=dp[n-1]+dp[n];
a[i]表示与gcd(n, x)= i的x的个数;
所以b[n]=sum(a[i]*i) , 所以我们只需求a[i]即可;
根据gcd(n, x)=i --->gcd(n/i, x/i) = 1,
因此仅仅要求出欧拉函数phi(n / i),就能够得到与n / i互质的个数;
从而求出gcd(x , n) = i的个数,这样总体就能够求解了;
#include #include #include #include #include #include #include #include