uses crt,dos;
type vects=array[1..100]of string;
vector=array[1..100]of integer;
var h,m,s,s100:word;
a:vects;
f,g:text;
T,i:integer;
v,x:vector;
procedure vectornou(var c:vector);
var i,d:integer;
begin
for i:=1 to T do val(a[i],c[i],d);
end;
function u(n:integer):integer;
var p,l,uc:integer;
begin
if (n mod 10=0) then u:=0
else if n mod 10=5 then u:=5
else
begin
p:=1;l:=0;
uc:=n mod 10;
repeat
inc(l);
p:=p*uc;
until l=n;
p:=p mod 10;
u:=p;
end;
end;
procedure ucifra(v:vector;var x:vector);
var k,uc,i,n:integer;
begin
k:=0;
for i:=1 to t do
begin
n:=0;uc:=0;
repeat
inc(n);
uc:=uc+u(n);
until n=v[i];
uc:=uc mod 10;
inc(k);
x[k]:=uc;
end;
end;
begin
clrscr;
gettime(h,m,s,s100);
writeln(h,':',m,':',s,':',s100);
assign(f,'cifra.in');
reset(f);
readln(f,T);
for i:=1 to T do readln(f,a[i]);
close(f);
vectornou(v);
ucifra(v,x);
assign(g,'cifra.out');
rewrite(g);
for i:=1 to t do writeln(g,x[i]);
close(g);
gettime(h,m,s,s100);
writeln(h,':',m,':',s,':',s100);
end.