#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define MAX_SZ 101
int mod_2(char *s)
{
return (int)s[strlen(s) - 1] % 2;
}
int mod_4(char *s)
{
int l = strlen(s);
if (l == 1) {
return (s[l - 1] - '0') % 4;
}
int a = (s[l - 2] - '0') * 10 + (s[l - 1] - '0');
return a % 4;
}
int find_last_digit(char *s, int b)
{
if (b == 0 || b == 1 || b == 5 || b == 6) {
return b;
}
if (b == 2 || b == 3 || b == 7 || b == 8) {
int r = mod_4(s);
if (r == 0) {
r = 4;
}
return (int)pow(b, r) % 10;
}
if (b == 4 || b == 9) {
int r = mod_2(s);
if (r == 0) {
r = 2;
}
return (int)pow(b, r) % 10;
}
return 0;
}
int sum_of_ten(void)
{
int nr = 0;
char *s = (char *)malloc(2);
s[1] = '\0';
for (int i = 0; i <= 9; i++) {
s[0] = i + '0';
nr += find_last_digit(s, i);
}
free(s);
return nr;
}
int sum(char *s)
{
int ten = sum_of_ten();
int l = strlen(s);
int u = s[l - 1] - '0';
int sm = 0;
for (int i = 0; i <= u; i++) {
char *c = (char *)malloc(2);
c[0] = i + '0';
c[1] = '\0';
// printf("%d ", find_last_digit(c, i));
sm += find_last_digit(c, i);
free(c);
}
// printf("\n");
int nr;
if (l == 1) {
nr = 0;
} else {
nr = ten * (s[l - 2] - '0');
}
return (sm + nr) % 10;
}
int main()
{
FILE *file_in = fopen("cifra.in", "r");
FILE *file_out = fopen("cifra.out", "w");
int t;
fscanf(file_in, "%d", &t);
for (int i = 0; i < t; i++) {
char *s = (char *)calloc(MAX_SZ, 1);
fscanf(file_in, "%s", s);
fprintf(file_out, "%d\n", sum(s));
free(s);
}
fclose(file_in);
fclose(file_out);
}