原题目:
解题思路:
代码:
void solve() {
ll i, j,k,x,y,z,p,q,u,v;
ll N = 100000000,NN=1000;
k = 2;
u = 0;
v = 0;
z = 1;
double a,b,c;
M.NT.get_prime_Euler(N);
ll l = M.NT.pcnt;
for (i = 3; i <= l; i++) {
u = 0;
x = M.NT.prime[i];
u = u + x-1;
p = x - 1;
for (j = 1; j <= 4; j++) {
if (x-j == 0)break;
p = (p * M.NT.prime_pow(x - j, x - 2, x)) % x;
u = (u + p)%x;
}
ans1 = ans1 + u;
if (i % 10000==0) {
printf("%lld\n", x);
}
}
printf("%lld\n",ans1);
}