朴素
可更加优化
#include<bits/stdc++.h>
using namespace std;
long long A[2000000 + 10],B[2000000 + 10];
int main(){
int n , a ,m;
cin >> n >> a >> m;
A[1] = a;
for(int i = 2; i <= n; i++){
A[i] = (A[i-1] + 7 * i ) % m ;
}
for(int i = 1; i <= n ; i++){
for(int j = i; j <= n; j += i){
B[j]=B[j]+A[i];
}
}
for(int i = 1; i <= n ; i++){
B[i]^=B[i-1];
}
cout << B[n] << endl;
}