#include using ll = long long; using namespace std; struct Sieve { Sieve(int n) : l(n + 1, 0) { for (int i = 2; i <= n; i++) { if (!l[i]) p.push_back(l[i] = i); for (int q : p) { if (q > l[i]) break; if (int j = i * q; j <= n) l[j] = q; else break; } } } bool is_prime(int i) { return l[i] == i; } vector l, p; }; int main() { ios::sync_with_stdio(false); cin.tie(0); int t; cin >> t; int m = 1e7; vector a(m + 1); Sieve si(m); ll s = 0; for (int i = 2; i <= m; i++) { int t = i, u = i, p = 0; while (t > 1) { int l = si.l[t]; if (l != p) { u = u / l * (l - 1); p = l; } t /= l; } s += (i - 1) * 2 - u; a[i] = s; } while (t--) { int n; cin >> n; cout << a[n] << '\n'; } return 0; }