#include <iostream>
#include <vector>
#include<map>
#include<math.h>
using namespace std;
vector<int> vetp;//质数数组
bool is_p(int x) { //判定质数
for (int j = 2; j < (int)sqrt(x) + 1; j++) {
if (x % j == 0) {
return false;
}
}
return true;
}
void vetp_add() {
// 扩容vetp
for (int i = *vetp.rbegin() + 2;; i += 2) {
if (is_p(i)) {
vetp.push_back(i);
return;
}
}
}
int main() {
vetp.push_back(2);
vetp.push_back(3);
int n;
cin >> n;
while (n--) {
map<int, int> mii;
int num;
cin >> num;
int vetp_index = 0;
long long cnt = 1;
while (num != 1) {
if (vetp_index == vetp.size() - 1) {
if (is_p(num)) {
mii[num]++; break;
}
else {
vetp_add();
}
}
while (num % vetp[vetp_index] == 0) {
mii[vetp[vetp_index]]++;
num /= vetp[vetp_index];
}
vetp_index++;
}
for (auto i = mii.begin(); i != mii.end(); i++) {
cnt *= (i->second + 1);
}
cout << cnt << endl;
}
}
// 64 位输出请用 printf("%lld")