#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define nl '\n'
#define mod 1000000007
#define fori(i,n) for(ll i=0;i < n;i++)
#define forn(i,n) for(ll i=1;i <= n;i++)
#define forx(i,x,n) for(ll i=x;i < n;i++)
#define sortx(x) sort(x.begin(),x.end())
#define sorty(x) sort(x.begin(),x.end(),greater<>())
using namespace std;
/*#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template<typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
using namespace __gnu_pbds;
#define ordered_multiset tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>
ll Mod(ll base, ll exp, ll MOD){
if(exp == 0) return 1;
ll res = Mod(base,exp/2,MOD);
if(exp % 2)
return (((res * res) % MOD)*base) % MOD;
else
return (res*res) % MOD;
}
ll gcd(ll x,ll y){
ll b = min(x,y);
ll a = max(x,y);
while(b != 0){
ll temp = b;
b = a % b;
a = temp;
}
return a;
}
ll div(vector<ll> &x){
for(ll i=1;i <= 1000007;i++){
for(ll j=i;j <= 1000007;j+=i){
x[j]++;
}
}
}
bool prime(ll n){
int c=0;
for(ll i=1;i <= n;i++){
if(n % i == 0) c++;
if(c > 2) break;
}
if(c == 2) return true;
return false;
}*/
vector<int> computeTotient(int N) {
vector<int> phi(N + 1);
for (int i = 1; i <= N; i++)
phi[i] = i;
for (int i = 2; i <= N; i++) {
if (phi[i] == i){
for (int j = i; j <= N; j += i) {
phi[j] = phi[j] * (i - 1) / i;
}
}
}
return phi;
}
ll countPairs(int N) {
vector<int> phi = computeTotient(N);
ll S = 0;
for (int i = 1; i <= N; i++) {
S += phi[i];
}
// Compute total pairs
ll totalPairs = (1LL * N * (N + 1)) / 2;
// Pairs with gcd > 1 = Total pairs - Coprime pairs
return totalPairs - S;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t,i=1;
cin >> t;
while(t--){
int N;
cin >> N;
cout << "Case " << i << ": " << countPairs(N) << nl;
i++;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgbmwgJ1xuJwojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgZm9yaShpLG4pIGZvcihsbCBpPTA7aSA8IG47aSsrKQojZGVmaW5lIGZvcm4oaSxuKSBmb3IobGwgaT0xO2kgPD0gbjtpKyspCiNkZWZpbmUgZm9yeChpLHgsbikgZm9yKGxsIGk9eDtpIDwgbjtpKyspCiNkZWZpbmUgc29ydHgoeCkgc29ydCh4LmJlZ2luKCkseC5lbmQoKSkKI2RlZmluZSBzb3J0eSh4KSBzb3J0KHguYmVnaW4oKSx4LmVuZCgpLGdyZWF0ZXI8PigpKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwovKiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp1c2luZyBvcmRlcmVkX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CiNkZWZpbmUgb3JkZXJlZF9tdWx0aXNldCB0cmVlPGludCwgbnVsbF90eXBlLCBsZXNzX2VxdWFsPGludD4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+CgpsbCBNb2QobGwgYmFzZSwgbGwgZXhwLCBsbCBNT0QpewogICAgaWYoZXhwID09IDApIHJldHVybiAxOwogICAgbGwgcmVzID0gTW9kKGJhc2UsZXhwLzIsTU9EKTsKICAgIGlmKGV4cCAlIDIpIAogICAgICByZXR1cm4gKCgocmVzICogcmVzKSAlIE1PRCkqYmFzZSkgJSBNT0Q7CiAgICBlbHNlCiAgICAgIHJldHVybiAocmVzKnJlcykgJSBNT0Q7Cn0KCmxsIGdjZChsbCB4LGxsIHkpewogIGxsIGIgPSBtaW4oeCx5KTsKICBsbCBhID0gbWF4KHgseSk7CiAgd2hpbGUoYiAhPSAwKXsKICAgIGxsIHRlbXAgPSBiOwogICAgYiA9IGEgJSBiOwogICAgYSA9IHRlbXA7CiAgfQogIHJldHVybiBhOwp9CgpsbCBkaXYodmVjdG9yPGxsPiAmeCl7CiAgZm9yKGxsIGk9MTtpIDw9IDEwMDAwMDc7aSsrKXsKICAgIGZvcihsbCBqPWk7aiA8PSAxMDAwMDA3O2orPWkpewogICAgICB4W2pdKys7CiAgICB9CiAgfQp9Cgpib29sIHByaW1lKGxsIG4pewogIGludCBjPTA7CiAgZm9yKGxsIGk9MTtpIDw9IG47aSsrKXsKICAgIGlmKG4gJSBpID09IDApIGMrKzsKICAgIGlmKGMgPiAyKSBicmVhazsKICB9CiAgaWYoYyA9PSAyKSByZXR1cm4gdHJ1ZTsKICByZXR1cm4gZmFsc2U7Cn0qLwoKdmVjdG9yPGludD4gY29tcHV0ZVRvdGllbnQoaW50IE4pIHsKICAgIHZlY3RvcjxpbnQ+IHBoaShOICsgMSk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBOOyBpKyspCiAgICAgICAgcGhpW2ldID0gaTsKCiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBOOyBpKyspIHsKICAgICAgICBpZiAocGhpW2ldID09IGkpewogICAgICAgICAgICBmb3IgKGludCBqID0gaTsgaiA8PSBOOyBqICs9IGkpIHsKICAgICAgICAgICAgICAgIHBoaVtqXSA9IHBoaVtqXSAqIChpIC0gMSkgLyBpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHBoaTsKfQoKbGwgY291bnRQYWlycyhpbnQgTikgewogICAgdmVjdG9yPGludD4gcGhpID0gY29tcHV0ZVRvdGllbnQoTik7CiAgICBsbCBTID0gMDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IE47IGkrKykgewogICAgICAgIFMgKz0gcGhpW2ldOwogICAgfQoKICAgIC8vIENvbXB1dGUgdG90YWwgcGFpcnMKICAgIGxsIHRvdGFsUGFpcnMgPSAoMUxMICogTiAqIChOICsgMSkpIC8gMjsKCiAgICAvLyBQYWlycyB3aXRoIGdjZCA+IDEgPSBUb3RhbCBwYWlycyAtIENvcHJpbWUgcGFpcnMKICAgIHJldHVybiB0b3RhbFBhaXJzIC0gUzsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBpbnQgdCxpPTE7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlKHQtLSl7CiAgICAgIGludCBOOwogICAgICBjaW4gPj4gTjsKICAgICAgY291dCA8PCAiQ2FzZSAiIDw8IGkgPDwgIjogIiA8PCBjb3VudFBhaXJzKE4pIDw8IG5sOwogICAgICBpKys7CiAgICB9Cn0=