Task: | Alien Invasion |
Sender: | Ukkonen Fan Club |
Submission time: | 2018-05-26 11:11:47 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.18 s | details |
#2 | ACCEPTED | 0.18 s | details |
#3 | ACCEPTED | 0.19 s | details |
#4 | ACCEPTED | 0.17 s | details |
#5 | ACCEPTED | 0.16 s | details |
#6 | ACCEPTED | 0.17 s | details |
#7 | ACCEPTED | 0.15 s | details |
#8 | ACCEPTED | 0.18 s | details |
#9 | ACCEPTED | 0.19 s | details |
#10 | ACCEPTED | 0.21 s | details |
#11 | ACCEPTED | 0.18 s | details |
#12 | ACCEPTED | 0.16 s | details |
#13 | ACCEPTED | 0.17 s | details |
#14 | ACCEPTED | 0.20 s | details |
#15 | ACCEPTED | 0.16 s | details |
#16 | ACCEPTED | 0.17 s | details |
#17 | ACCEPTED | 0.17 s | details |
#18 | ACCEPTED | 0.18 s | details |
#19 | ACCEPTED | 0.18 s | details |
#20 | ACCEPTED | 0.16 s | details |
#21 | ACCEPTED | 0.18 s | details |
#22 | ACCEPTED | 0.17 s | details |
Code
#include <iostream>#include <vector>const int N = 1e7;int divs[N];std::vector<int> primes;bool sqr(long long v) {long long low = 0;long long high = 10 + (int)1e9;while(low != high) {long long mid = (low + high) >> 1;long long val = mid * mid;if (val < v) {low = mid + 1;} else {high = mid;}}return (low * low == v);}int main() {for (int i = 0; i < N; ++i) divs[i] = -1;for (int i = 2; i < N; ++i) {if (divs[i] == -1) {divs[i] = primes.size();primes.push_back(i);}for (int j = 0; j <= divs[i]; ++j) {int t = i * primes[j];if (t >= N) break;divs[t] = j;}}long long n;std::cin >> n;bool even = false;for (auto p : primes) {int k = 1;while(n % p == 0) {++k;n /= p;}if (k % 2 == 0) even = true;}if (n >= N) {if (! sqr(n)) {even = true;}}if (even) {std::cout << "even\n";} else {std::cout << "odd\n";}}
Test details
Test 1
Verdict: ACCEPTED
input |
---|
1 |
correct output |
---|
odd |
user output |
---|
odd |
Test 2
Verdict: ACCEPTED
input |
---|
2 |
correct output |
---|
even |
user output |
---|
even |
Test 3
Verdict: ACCEPTED
input |
---|
3 |
correct output |
---|
even |
user output |
---|
even |
Test 4
Verdict: ACCEPTED
input |
---|
4 |
correct output |
---|
odd |
user output |
---|
odd |
Test 5
Verdict: ACCEPTED
input |
---|
5 |
correct output |
---|
even |
user output |
---|
even |
Test 6
Verdict: ACCEPTED
input |
---|
6 |
correct output |
---|
even |
user output |
---|
even |
Test 7
Verdict: ACCEPTED
input |
---|
7 |
correct output |
---|
even |
user output |
---|
even |
Test 8
Verdict: ACCEPTED
input |
---|
8 |
correct output |
---|
even |
user output |
---|
even |
Test 9
Verdict: ACCEPTED
input |
---|
9 |
correct output |
---|
odd |
user output |
---|
odd |
Test 10
Verdict: ACCEPTED
input |
---|
10 |
correct output |
---|
even |
user output |
---|
even |
Test 11
Verdict: ACCEPTED
input |
---|
11 |
correct output |
---|
even |
user output |
---|
even |
Test 12
Verdict: ACCEPTED
input |
---|
12 |
correct output |
---|
even |
user output |
---|
even |
Test 13
Verdict: ACCEPTED
input |
---|
13 |
correct output |
---|
even |
user output |
---|
even |
Test 14
Verdict: ACCEPTED
input |
---|
14 |
correct output |
---|
even |
user output |
---|
even |
Test 15
Verdict: ACCEPTED
input |
---|
15 |
correct output |
---|
even |
user output |
---|
even |
Test 16
Verdict: ACCEPTED
input |
---|
16 |
correct output |
---|
odd |
user output |
---|
odd |
Test 17
Verdict: ACCEPTED
input |
---|
17 |
correct output |
---|
even |
user output |
---|
even |
Test 18
Verdict: ACCEPTED
input |
---|
18 |
correct output |
---|
even |
user output |
---|
even |
Test 19
Verdict: ACCEPTED
input |
---|
19 |
correct output |
---|
even |
user output |
---|
even |
Test 20
Verdict: ACCEPTED
input |
---|
999999874000003969 |
correct output |
---|
odd |
user output |
---|
odd |
Test 21
Verdict: ACCEPTED
input |
---|
999999999999999989 |
correct output |
---|
even |
user output |
---|
even |
Test 22
Verdict: ACCEPTED
input |
---|
1000000000000000000 |
correct output |
---|
odd |
user output |
---|
odd |