type matrix=array[0..10,0..10]of byte;
sor =array[0..10]of byte;
var a:matrix;
b:sor;
i,j,n,m,x:integer;
f,g:text;
begin
{0-1}
a[0,1]:=0;
a[1,1]:=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[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:=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 i:=1 to n do begin
readln(f,x);
m:=x mod 10;
x:=x mod b[m];
writeln(g,a[m,x]);
end;
close(f);
close(g);
end.