题目链接:https://ac.nowcoder.com/acm/contest/879/G
题意:给定A1和A数组公式:
以及B数组:
求
思路:利用筛法更新b数组,最后求异或和即可。
AC代码:
#include<cstdio>
using namespace std;
const int maxn=; int n,M,a,b[maxn],ans; int main(){
scanf("%d%d%d",&n,&a,&M);
for(int i=;i<=n;++i)
b[i]=a;
for(int i=;i<=n;++i){
a=(a+*i)%M;
for(int j=i;j<=n;j+=i)
b[j]+=a;
}
for(int j=;j<=n;++j)
ans^=b[j];
printf("%d\n",ans);
return ;
}