#include <fstream>
#include <cstring>
using namespace std;
const int MAX = int(1e7);
bool E[MAX];
short nrdiv[MAX];
ifstream cin(“eratostene4.in”);
ofstream cout(“eratostene4.out”);
void ciur(){ memset(E, 1, MAX); for(int i = 2; i * i < MAX; i++) if(E[i]) for(int j = i * i; j < MAX; j+=i) E[j] = 0; for(int i = 2; i < MAX; i++) if(E[i]) for(int j = i; j < MAX; j += i) nrdiv[j]++;
}
int main(){
ciur();
int n, x;
cin >> n;
for(int i = 1; i <= n; i++){
cin >> x;
cout << (1 << nrdiv[x]) << ‘ ‘;
}
return 0;
}