#include<iostream>
#include<stdio.h>
#include<map>
#include<cmath>
#include<vector>
using namespace std;
#define mod 1000000007
#define MAX 50000
#define ll long long int
map<ll,ll> prime,div;
ll i,j,s,res,k,ans,x;
vector<ll> pr;
ll fpow(ll base, ll power)
{
ll re=1;
while(power>0)
{
if(power%2==1)
{
re*=base;
}
base*=base;
power/=2;
}
return re;
}
int main()
{
for(i=2;i<sqrt(MAX+1);i++)
{
if(prime[i]==0)
{
for(j=2;i*j<MAX+1;j++)
{
prime[i*j]=1;
}
}
}
for(i=2;i<MAX+1;i++)
{
if(prime[i]==0)
{
pr.push_back(i);
}
}
for(i=3;i<=MAX;i++)
{
res=0;
j=0;
k=0;
ans=1;
for(k=0;k<pr.size() && pr[k]<=i;k++)
{
x=1;
res=0;
while((i>=fpow(pr[k],x)))
{
res+=i/fpow(pr[k],x);
x++;
}
ans*=(res+1)%mod;
}
div[i]=ans;
}
div[0]=1;
div[1]=1;
div[2]=2;
ll t;
scanf("%lld",&t);
while(t--)
{
ll y;
scanf("%lld",&y);
printf("%lld\n",div[y]);
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPG1hcD4KI2luY2x1ZGU8Y21hdGg+CiNpbmNsdWRlPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBtb2QgMTAwMDAwMDAwNwojZGVmaW5lIE1BWCA1MDAwMAojZGVmaW5lIGxsIGxvbmcgbG9uZyBpbnQKbWFwPGxsLGxsPiBwcmltZSxkaXY7CmxsIGksaixzLHJlcyxrLGFucyx4Owp2ZWN0b3I8bGw+IHByOwpsbCBmcG93KGxsIGJhc2UsIGxsIHBvd2VyKQp7CiAgICBsbCByZT0xOwogICAgd2hpbGUocG93ZXI+MCkKICAgIHsKICAgICAgICBpZihwb3dlciUyPT0xKQogICAgICAgIHsKICAgICAgICAgICAgcmUqPWJhc2U7CiAgICAgICAgfQogICAgICAgIGJhc2UqPWJhc2U7CiAgICAgICAgcG93ZXIvPTI7CiAgICB9CiAgICByZXR1cm4gcmU7Cn0KaW50IG1haW4oKQp7CiAgICBmb3IoaT0yO2k8c3FydChNQVgrMSk7aSsrKQogICAgewogICAgICAgIGlmKHByaW1lW2ldPT0wKQogICAgICAgIHsKICAgICAgICAgICAgZm9yKGo9MjtpKmo8TUFYKzE7aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwcmltZVtpKmpdPTE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBmb3IoaT0yO2k8TUFYKzE7aSsrKQogICAgewogICAgICAgIGlmKHByaW1lW2ldPT0wKQogICAgICAgIHsKICAgICAgICAgICAgcHIucHVzaF9iYWNrKGkpOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpPTM7aTw9TUFYO2krKykKICAgIHsKICAgICAgICByZXM9MDsKICAgICAgICBqPTA7CiAgICAgICAgaz0wOwogICAgICAgIGFucz0xOwogICAgICAgIGZvcihrPTA7azxwci5zaXplKCkgJiYgcHJba108PWk7aysrKQogICAgICAgIHsKICAgICAgICAgICAgeD0xOwogICAgICAgICAgICByZXM9MDsKICAgICAgICAgICAgd2hpbGUoKGk+PWZwb3cocHJba10seCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXMrPWkvZnBvdyhwcltrXSx4KTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgeCsrOyAgICAKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgYW5zKj0ocmVzKzEpJW1vZDsKICAgICAgICB9CiAgICAgICAgZGl2W2ldPWFuczsKICAgIH0KICAgIGRpdlswXT0xOwogICAgZGl2WzFdPTE7CiAgICBkaXZbMl09MjsKICAgIGxsIHQ7CiAgICBzY2FuZigiJWxsZCIsJnQpOwogICAgd2hpbGUodC0tKQogICAgewogICAgICAgIGxsIHk7CiAgICAgICAgc2NhbmYoIiVsbGQiLCZ5KTsKICAgICAgICBwcmludGYoIiVsbGRcbiIsZGl2W3ldKTsKICAgIH0KICAgIHJldHVybiAwOwp9