上课笔记如图所示:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
#define int long long
signed main()
{
int n;
cin >> n;
int res = n;
for (int i = 2; i <= n / i; i ++)
{
if(n % i == 0)//枚举的n 的约数d
{
int s = 0, p = i;
while(n % p == 0) s ++, n /= p;
res = res * (p + s * p - s) / p;//通分:分母化为 p
}
}
if(n > 1) res = res * (n + n - 1) / n;
cout << res << endl;
return 0;
}