package main import ( "fmt" "math" ) func sieveOfEratosthenes(N int) (primes []int) { b := make([]bool, N) for i := 2; i < N; i++ { if b[i] == true { continue } primes = append(primes, i) for k := i * i; k < N; k += i { b[k] = true } } return } func main() { //get all primes from 2 to 10^5 primes := sieveOfEratosthenes(int(math.Pow(10,5))) //fmt.Println(primes) var g, n, count int fmt.Scanf("%v", &g) for i := 0; i < g; i++ { fmt.Scanf("%v", &n) //for each game, count number of primes <= n. % 2 to get winner count = 0 //ns := int(math.Min(float64(len(primes)), math.Sqrt(float64(n)) + 10)) //ns := int(math.Sqrt(float64(n))) for j := 0; j < len(primes); j++ { //fmt.Println(primes[j]) if primes[j] <= n { count += 1 } } if count % 2 == 0 { fmt.Println("Bob") } else { fmt.Println("Alice") } } }