/* * * Author: r3gz3n * Description: * Difficulty: * */ #include #define ll long long #define ull unsigned long long #define pb push_back #define mp make_pair #define fi first #define se second #define be begin() #define en end() #define all(x) (x).begin(),(x).end() #define alli(a, n, k) (a+k),(a+n+k) #define REP(i, a, b, k) for(__typeof(a) i = a;i < b;i += k) #define REPI(i, a, b, k) for(__typeof(a) i = a;i > b;i -= k) #define REPITER(it, a) for(__typeof(a.begin()) it = a.begin();it != a.end(); ++it) #define y0 sdkfaslhagaklsldk #define y1 aasdfasdfasdf #define yn askfhwqriuperikldjk #define j1 assdgsdgasghsf #define tm sdfjahlfasfh #define lr asgasgash #define norm asdfasdgasdgsd #define have adsgagshdshfhds #define eps 1e-6 #define pi 3.141592653589793 using namespace std; template inline T gcd(T x, T y) { if (!y) return x; return gcd(y, x%y); } template inline T mod(T x) { if(x < 0) return -x; else return x; } typedef vector VII; typedef vector VLL; typedef pair PII; typedef vector< pair > VPII; typedef vector< pair > VPPI; const int MOD = 1e9 + 7; const int INF = 1e9; const int MAX = 1e5 +5; bitset prime; int dp[MAX]; void sieve() { int i, j; prime.set(0, true); prime.set(1, true); for(i = 2;i*i < MAX;++i) if(prime[i] == false) for(j = i*i;j < MAX;j += i) { prime.set(j, true); } dp[0] = 0; dp[1] = 0; REP(i, 2, MAX, 1) { if(prime[i] == false) dp[i] = dp[i-1] + 1; else dp[i] = dp[i-1]; } } int main(int argc, char* argv[]) { ios::sync_with_stdio(false); int t, n; cin >> t; sieve(); while(t--) { cin >> n; if(dp[n] % 2) cout << "Alice" << endl; else cout << "Bob" << endl; } return 0; }