type matrix=array[0..10,0..10]of longint;
sor =array[0..10]of longint;
var a:matrix;
b:sor;
i,j,n,x,o,y:longint;
f,g:text;
begin
{0-1}
a[0,0]:=0;
a[1,1]:=1;
a[1,0]:=1;
b[0]:=1;
b[1]:=1;
{2}
a[2,1]:=2;
a[2,2]:=4;
a[2,3]:=8;
a[2,0]:=6;
b[2]:=4;
{3}
a[3,1]:=3;
a[3,2]:=9;
a[3,3]:=7;
a[3,0]:=1;
b[3]:=4;
{4}
a[4,1]:=4;
a[4,0]:=6;
b[4]:=2;
{5}
a[5,1]:=5;
a[5,0]:=5;
b[5]:=1;
{6}
a[6,1]:=6;
a[6,0]:=6;
b[6]:=1;
{7}
a[7,1]:=7;
a[7,2]:=9;
a[7,3]:=3;
a[7,0]:=1;
b[7]:=4;
{8}
a[8,1]:=8;
a[8,2]:=4;
a[8,3]:=2;
a[8,0]:=6;
b[8]:=4;
{9}
a[9,1]:=9;
a[9,0]:=1;
b[9]:=2;
{for i:=0 to 9 do begin writeln;
for j:=1 to b[i] do write(a[i,j],' ');
end; }
{for i:=2 to 9 do begin
j:=0;
x:=i;
while a[i,1]<>x mod 10 do begin
inc(j);
a[i,j]:=x mod 10;
x:=x*i;
end;
b[i]:=j;
end; }
assign(f,'cifra.in');reset(f);
assign(g,'cifra.out');rewrite(g);
readln(f,n);
for j:=1 to n do begin
readln(f,x);
o:=0;
for i:=1 to x do begin
y:=i mod 10;
o:=o+(a[y,i mod b[y]]);
end;
writeln(g,o mod 10);
end;
{o:=1;
if x>1 then
for j:=2 to x do begin
y:=i;
m:=y mod 10;
y:=y mod b[m];
o:=o+a[m,y];
end;
writeln(g,o mod 10);
end; }
close(f);
close(g);
end.