QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#473954#1863. Yes, Prime MinisterGenshinImpactsFaultWA 36ms17724kbC++141.1kb2024-07-12 15:12:582024-07-12 15:12:58

Judging History

你现在查看的是最新测评结果

  • [2024-07-12 15:12:58]
  • 评测
  • 测评结果:WA
  • 用时:36ms
  • 内存:17724kb
  • [2024-07-12 15:12:58]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int N = 10000010;
bool pri[N];
int p[N], lp;

bool check(int x) {
	if(x < 2) return 0;
	if(x <= 10000000) return !pri[x];
	for(int i = 1; 1ll * p[i] * p[i] <= x; i++) {
		if(x % p[i] == 0) return 0;
	}
	return 1;
}
void solve() {
	int x; cin >> x;
	if(x == 0) {
		cout << 3 << "\n"; return ;
	}
	if(x == 1) {
		cout << 2 << "\n"; return ;
	}
	if(x > 0) {
		if(!pri[x]) {
			cout << 1 << "\n";
		}
		else if(check(x + x - 1) || check(x + x + 1)) {
			cout << 2 << "\n";
		}
		else cout << "-1\n";
		return ;
	}
	if(check(-x + 1)) {
		cout << -2 * x + 1 + 1 << "\n";
		return ;
	}
	if(check(-x + 2 - x + 1)) {
		cout << -2 * x + 1 + 2 << "\n";
		return ;
	}
	cout << "-1\n";
}
int main() {
	ios::sync_with_stdio(0); cin.tie(nullptr);
	pri[1] = pri[0] = 1;
	for(int i = 2; i <= 10000000; i++) {
		if(!pri[i]) p[++lp] = i;
		for(int j = 1; 1ll * p[j] * i <= 10000000; j++) {
			pri[p[j] * i] = 1;
			if(i % p[j] == 0) break;
		}
	}
	int T; cin >> T;
	for(; T; --T) solve();
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 32ms
memory: 17724kb

input:

10
-2
-1
0
1
2
3
4
5
6
7

output:

6
4
3
2
1
1
2
1
2
1

result:

ok 10 numbers

Test #2:

score: -100
Wrong Answer
time: 36ms
memory: 17692kb

input:

201
-100
-99
-98
-97
-96
-95
-94
-93
-92
-91
-90
-89
-88
-87
-86
-85
-84
-83
-82
-81
-80
-79
-78
-77
-76
-75
-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27...

output:

202
-1
199
197
194
193
191
-1
-1
-1
-1
181
178
-1
-1
173
-1
-1
166
-1
163
-1
158
157
-1
-1
151
149
146
-1
142
-1
139
137
134
-1
131
-1
127
-1
122
-1
118
-1
-1
113
-1
109
106
-1
103
101
-1
97
94
-1
-1
89
86
-1
82
-1
79
-1
74
73
71
-1
67
-1
62
61
58
-1
-1
53
-1
-1
46
-1
43
41
38
37
34
-1
31
29
26
-1
2...

result:

wrong answer 2nd numbers differ - expected: '202', found: '-1'