B3706求调
  • 板块灌水区
  • 楼主Jack_Shu
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/28 18:56
  • 上次更新2024/8/28 21:12:52
查看原帖
B3706求调
1428177
Jack_Shu楼主2024/8/28 18:56

代码RE了:

#include<bits/stdc++.h>
using namespace std;
long long p[10000010], n, k, cnt, ount = 1, ans;
bool a[100000010] = {};
int a1[100010000];
void gete(int n){
	for(int i = 1;i * i <= n;i++){
		if(n % i == 0){
			a1[ount++] = i;
		}
	}
}
int main(){
	int m;
	cin >> m;
	for(int k = 0;k < m;k++){
		cin >> n;
		gete(n);
		for(int i = 2;i <= ount;i++){
			if(a[i] == 0){
				p[cnt++] = a1[i];
				ans ^= a1[i];
			}
			for(int j = 0;j < cnt;j++){
			    if(p[j] * a1[i] > n){
			        break;
			    }
				a[p[j] * i] = 1;
	            if(a1[i] % p[j] == 0){
					break;
				}
			}
		}
		cout << ans << '\n';
	}
	return 0;
}
2024/8/28 18:56
加载中...