#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int t,n;
cin>>t;
while(t--)
{
cin>>n;
if(n==1)//当n为1,2,3时单独考虑
cout<<'0'<<endl;
if(n==2)
cout<<'1'<<endl;
if(n==3)
cout<<'2'<<endl;
if(n>3)
{
if(n%2==0)//为偶数时,为n->2->1. 两步
cout<<'2'<<endl;
if(n%2!=0)//为奇数时,为n->n-1->2->1. 三步
cout<<'3'<<endl;
}
}
return 0;
}
//一道思维题,出题人说简单,反正当时没搞明白~~
题上说,对某一数字进行两种操作中的一种(就是随便选一种的意思啦),目的是找到最少的操作步骤