import bisect,collections,copy,heapq,itertools,math,string,sys,queue,time,random input = lambda: sys.stdin.readline().rstrip() def I(): return input() def IS(): return input().split() def II(): return int(input()) def IIS(): return list(map(int,input().split())) def LIIS(): return list(map(int,input().split())) def comb(n, r):return math.factorial(n) // (math.factorial(n - r) * math.factorial(r)) def make_divisors(n): lower_divisors , upper_divisors = [], [] i = 1 while i*i <= n: if n % i == 0: lower_divisors.append(i) if i != n // i: upper_divisors.append(n//i) i += 1 return lower_divisors + upper_divisors[::-1] ragen=range INF=10**18 MOD=998244353 #sys.setrecursionlimit(10**7) alpha="abcdefghijklmnopqrstuvwxyz" def bit(x): return bin(x).count("1") ############################################################################## t=II() for i in range(t): n=II() n-=2 print(n*(n+1)*(n+2)//3*2)