#define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; unsigned sieve(unsigned* dump, unsigned max, unsigned prev) { unsigned primes = 0, limit; if (prev >= max) goto compute; for (unsigned i = 2; i <= max; i++) dump[i] = 1; limit = sqrt(max); for (unsigned i = 2; i <= limit; i++) if ( dump[i] ) for (unsigned j = i*i; j <= max; j += i) dump[j] = 0; compute: for (unsigned i = 2; i <= max; i++) if (dump[i]) primes++; return primes; } int main() { std::ios::sync_with_stdio(false); unsigned A[100000], T, oldN = 0; cin >> T; for (unsigned i = 0; i < T; i++) { unsigned n; cin >> n; unsigned primes = sieve(A, n, oldN); if (primes % 2) cout << "Alice" << endl; else cout << "Bob" << endl; oldN = n; } scanf("\n"); return 0; }