#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
#include <queue>
#include <deque>
#include <bitset>
#include <iterator>
#include <list>
#include <stack>
#include <climits>
#include <map>
#include <set>
#include <iomanip>
#include <unordered_set>
#include <functional>
#include <numeric>
#include <utility>
#include <limits>
#include <time.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <unordered_map>
#define rep(i,a,b) for(int i=a;i<b;i++)
using namespace std;


void test_case() {
	int n;
	cin >> n;
	if(n == 1) {
		cout << 0 << '\n';
		return;
	}
	else if(n == 2) {
		cout << 1 << '\n';
		return;
	}
	else if(n == 3) {
		cout << 2 << '\n';
		return;
	}
	else if(n % 2 == 0) {
		cout << 2 << '\n';
	}
	else {
		cout << 3 << '\n';
	}

}


int32_t main() {
#ifndef ONLINE_JUDGE
 freopen("input.txt", "r", stdin);
 freopen("output.txt", "w", stdout);
#endif
 std::ios_base::sync_with_stdio(false);
 std::cin.tie(NULL);
 int T;
 cin >> T;
 while(T-- >0) {
 	test_case();
 }
}
