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