G

   题目:https://ac.nowcoder.com/acm/contest/879/G

  倍增求b的因子和

#include
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<

 

你可能感兴趣的:(补)