G
題目:https://ac.nowcoder.com/acm/contest/879/G
倍增求b的因子和
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
const ll N=2000100;
int a[N],b[N],vis[N],ans=0;
int main(){
int n,k,m;
cin>>n>>k>>m;
a[1]=k;
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]+=a[i];
}
}
for(int i=1;i<=n;i++){
ans^=b[i];
}
cout<<ans<<endl;
return 0;
}