玄学
查看原帖
玄学
699271
gaojizhe05楼主2024/3/10 22:32

这份代码我自己在电脑上一直卡着,卡出了很奇怪的答案,而且不过样例,但是提交却过了,能不能问一下是问什么?

代码如下:

int T,n,k,p[N/10],m[N],ans;
bitset <N> vis;
	for(int i=2;i<=N;i++){
		if(!vis[i]) p[++k]=i,m[i]=i;
		for(int j=1;j<=k&&p[j]*i<=N;j++){
			vis[p[j]*i]=1;
			m[p[j]*i]=p[j];
			if(i%p[j]==0) break;
		}
	}
	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		ans=0;
		while(m[n]!=n){
			ans^=m[n];
			n/=m[n];
		}
		ans^=n;
		printf("%d\n",ans);
	}
}

经过删减的核心代码(为避免被莫名其妙举报)

2024/3/10 22:32
加载中...