#include <cstdio>
#include <iostream>
using namespace std;
//打表可知fi 为i于的1-(k-1)最小公倍数 则为k,即如果fi能被对应1到(k-1)最小公倍数整除 ,
//则从k-1从3开始的最小公倍数 奉献在 i可以被对应公倍数整除时(一次1) 
long long c[45]; 
long long gcd(long long a,long long b)
{
	if(b==0)return a;
	else return gcd(b,a%b);
}//求最大公约数 
int main()
{
	long long k=2;
	for(int i=1;i<=43;i++)
	{
		c[i]=k;//存对应1到(k-1)的最小公倍数 
		k=k*i/gcd(k,i);//求最小公倍数 
	}
	int t;
	cin>>t;
	long long ans,n;
	while(t--)
	{
		cin>>n;
		ans=n*2;
		for(int i=3;i<=43;i++)
		ans=(ans+n/c[i])%1000000007;//求有多少个c[i]的倍数 
		cout<<ans<<endl;
	}
} 