//
// main.cpp
// a1
//
// Created by abc on 9/20/12.
// Copyright (c) 2012 abc. All rights reserved.
//
# include <iostream>
# include <cstdio>
# include <cstdlib>
# include <iomanip>
# include <cmath>
# include <map>
# include <vector>
using namespace std;
# define ISDIGIT(a) ('0' <= a && a <= '9')
# define TODIGIT(a) (a - '0')
typedef long long LONG;
void init()
{
freopen("cifra.in", "r", stdin);
freopen("cifra.out", "w", stdout);
}
int read_long()
{
char ch = getchar(), a[110], N = 0;
while(!ISDIGIT(ch)) ch = getchar();
do {
a[N++] = ch;
ch = getchar();
} while(__builtin_expect(ISDIGIT(ch), 1));
if (N == 1) return TODIGIT(a[0]);
else {
return (TODIGIT(a[N-2])*10 + TODIGIT(a[N-1]));
}
}
int read_long_2()
{
string a, b;
cin >> a;
if (a.size() > 2)
{
b += a[a.size()-2];
b += a[a.size()-1];
}
else {
b = a;
}
int ans;
sscanf(b.c_str(), "%d", &ans);
return ans;
}
int ans(int N)
{
static const int magik[10][5] =
{
{1, 0, 0, 0, 0},
{1, 1, 0, 0, 0},
{4, 2, 4, 8, 6},
{4, 3, 9, 7, 1},
{2, 4, 6, 0, 0},
{1, 5, 0, 0, 0},
{1, 6, 0, 0, 0},
{4, 7, 9, 3, 1},
{4, 8, 4, 2, 6},
{2, 9, 1, 0, 0}
};
int v = N%10, grad = (N-1)%magik[v][0] +1;
return magik[v][grad];
}
int main(int argc, const char * argv[])
{
init();
vector<int> vec(101, 0);
for(int i=1; i<vec.size(); ++i)
{
vec[i] = (vec[i-1] + ans(i))%10;
}
LONG T; cin >> T;
for(int i=0; i<T; ++i)
{
int t = read_long();
cout << vec[(t-1)%100 +1] << endl;
}
return 0;
}