#define _USE_MATH_DEFINES #include #include #include #include #include //#include #include #include #include #include #include #include ///////// #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) #define P(p) cout<<(p)< ///////// typedef long long LL; typedef long double LD; ///////// using namespace::std; ///////// const int NumMax = 10000; bool pdp[NumMax+1]; vector prime; //2からNまでの素数を作る void makePrime(int N){ for(int i=2; i<= N; ++i){ if(pdp[i] == false){ prime.push_back(i); for(int j = i+i; j<= N; j += i){ pdp[j] = true; } } } return ; } int main(void){ std::cin.tie(0); std::ios::sync_with_stdio(false); std::cout << std::fixed;// //cout << setprecision(10);// int N;cin>>N; int m; int count = 0; int countP=0; makePrime(NumMax); rep(i,N){ cin>>m; vector::iterator itr; itr = prime.begin(); while(m>1){ countP = 0; while( m%(*itr) == 0){ m /= *itr; ++countP; } //count += (countP+1)/2; count ^= (countP%3); ++itr; } } if( count == 0){ P("Bob"); }else{ P("Alice"); } return 0; }