#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL MOD = 1e9 + 7;
int greatest_divisor(int n)
{
for(int i = 2; i * i <= n; i++)
{
if(n % i == 0)
{
return n / i;
}
}
return 1;
}
int calculate_game(LL n)
{
LL ret = (n * (n - 1)) / 2;
return ret % MOD;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
cin>>t;
while(t--)
{
int n;
LL match = 0;
cin>>n;
while(n > 1)
{
LL group = greatest_divisor(n);
LL team = n / group;
match = (match + ((group * calculate_game(team)) % MOD)) % MOD;
n = group;
}
cout<<match<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgTEw7Cgpjb25zdCBMTCBNT0QgPSAxZTkgKyA3OwoKaW50IGdyZWF0ZXN0X2Rpdmlzb3IoaW50IG4pCnsKICAgIGZvcihpbnQgaSA9IDI7IGkgKiBpIDw9IG47IGkrKykKICAgIHsKICAgICAgICBpZihuICUgaSA9PSAwKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIG4gLyBpOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKaW50IGNhbGN1bGF0ZV9nYW1lKExMIG4pCnsKICAgIExMIHJldCA9IChuICogKG4gLSAxKSkgLyAyOwogICAgcmV0dXJuIHJldCAlIE1PRDsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CgogICAgaW50IHQ7CgogICAgY2luPj50OwoKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBpbnQgbjsKICAgICAgICBMTCBtYXRjaCA9IDA7CgogICAgICAgIGNpbj4+bjsKCiAgICAgICAgd2hpbGUobiA+IDEpCiAgICAgICAgewogICAgICAgICAgICBMTCBncm91cCA9IGdyZWF0ZXN0X2Rpdmlzb3Iobik7CiAgICAgICAgICAgIExMIHRlYW0gPSBuIC8gZ3JvdXA7CiAgICAgICAgICAgIG1hdGNoID0gKG1hdGNoICsgKChncm91cCAqIGNhbGN1bGF0ZV9nYW1lKHRlYW0pKSAlIE1PRCkpICUgTU9EOwogICAgICAgICAgICBuID0gZ3JvdXA7CiAgICAgICAgfQoKICAgICAgICBjb3V0PDxtYXRjaDw8ZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=