import sys
input = sys.stdin.readline

# エラトステネスの篩を用いた素因数分解・約数列挙
MAX=10**7+10 # 使いたい最大値を指定

# Sieve[i]で、iの最も小さい約数を返す。
Sieve=[i for i in range(MAX)]

for i in range(2,MAX):
    if Sieve[i]!=i:
        continue
    
    for j in range(i,MAX,i):
        if Sieve[j]==j:
            Sieve[j]=i

# 素因数分解
def fact(x):
    D=dict()
    while x!=1:
        k=Sieve[x]
        if k in D:
            D[k]+=1
        else:
            D[k]=1
        x//=k
    return D

# 約数列挙
def faclist(x):
    LIST=[1]
    while x!=1:
        k=Sieve[x]
        count=0
        while x%k==0:
            count+=1
            x//=k

        LIST2=[]
        for l in LIST:
            for i in range(1,count+1):
                LIST2.append(l*k**i)
        LIST+=LIST2

    return LIST

def euler_totient(x):
    FACT=fact(x)
    ANS=x
    for f in FACT:
        ANS=ANS*(f-1)//f

    return ANS

ANS=[0]*(10**7+10)

for i in range(2,10**7+1):
    k=euler_totient(i)
    ANS[i]=ANS[i-1]+i-1+(i-1-k)

#print(ANS[:10])

T=int(input())
for tests in range(T):
    N=int(input())
    print(ANS[N])