#include using namespace std; using ll = long long; using ii = pair; using vi = vector; using vii = vector; using vvi = vector; #define ALL(x) (x).begin(),(x).end() #define ff first #define ss second #define D(a) cerr << ">> " << #a << " = >" << a << "<" << endl #define PB push_back #define F(i,a,b) for ( int i = (int)(a); i < (int)(b); ++i ) #define FD(i,a,b) for ( int i = int(a); i >= int(b); --i ) #define R1(a) scanf("%d",&a) #define R2(a,b) scanf("%d%d",&a,&b) #define R3(a,b,c) scanf("%d%d%d",&a,&b,&c) #define DR1(a) int a; scanf("%d",&a) #define DR2(a,b) int a,b; scanf("%d%d",&a,&b) #define DR3(a,b,c) int a,b,c; scanf("%d%d%d",&a,&b,&c) const int INF = 1e9 + 7; constexpr const double PI = acos(-1); const double EPS = 1e-9; // reading input void R() { } template void R(T & x, Args & ... args) { cin >> x; R(args...); } const int N = 1e6; int dp[N+1]; int main() { int n, t; for (long i = 1; i <= N; ++i) { for (long j = i + 1; j <= N; ++j) { if (i*j*(j+1) > N) break; F(k,j+1,N+1) { if (i*j*k > N) break; ++dp[i*j*k]; } } } F(i,1,N+1) dp[i] += dp[i-1]; for (R(t); t--; ) { R(n); cout << dp[n] << endl; } return 0; }