## solution  

거듭제곱한 수의 일의자리를 출력해주면 된다.  

문제는 그냥 출력하면 숫자가 커져서 시간초과가 된다.  

  

숫자를 거듭제곱한 것은 일의자리가 규칙성을 가지므로 그것을 이용하면 된다.  



## CODE  


```python

import sys

def data1(n):

    if '\x1a' in n: n = n.replace('\x1a','')

    if '\n' in n: n = n.replace('\n','')

    return n

input = sys.stdin.readlines()

input = list(map(data1,input))

input = input[1:]


for tmp in input:

    a,b = map(int,tmp.split())

    cycle_dict = {0:1,1:1,2:4,3:4,4:2,5:1,6:1,7:4,8:4,9:2}

    

    R = b % cycle_dict[a%10]

    if R == 0: R = cycle_dict[a%10]

    print(a**(R)%10 if a**(R)%10 != 0 else 10)

```

처음에는 규칙성을 직접 찾을 생각을 했는데. 이게 꼬이기도 하고 어디서 꼬였는지 찾지 못해서 0~9까지 경우의 수를 다 집어넣었다.  

내가 꼬였던 부분은 사이클이 1일때, 1이 아닐때 결과가 엇갈려서 꼬였다.  



```python

#틀린 코드

import sys

def data1(n):

    if '\x1a' in n: n = n.replace('\x1a','')

    if '\n' in n: n = n.replace('\n','')

    return n

input = sys.stdin.readlines()

input = list(map(data1,input))

input = input[1:]


for tmp in input:

    a,b = map(int,tmp.split())

    cycle_dict = {0:1,1:1,2:4,3:4,4:2,5:1,6:1,7:4,8:4,9:2}

    

    R = b % cycle_dict[a%10]

    if R == 0: R = cycle_dict[a%10]

    print(a**(R)%10)

```

2일때를 예로 들어보면.  

숫자 2를 거듭제곱 할때는 2,4,8,6의 규칙성을 갖는다.(cycle 4)

나머지가 1인 숫자만큼 거듭제곱 했을시 2, 2일때는 4, 3일떄는 8...  

그리고 0일때가 6이다.  

순서대로 1,2,3,0이 되는것.  

처음에는 나머지가 0일때 1을 더해야 하나 생각했는데 맨 마지막 case가 와야한다.  

  

그리고 한가지 더 신경쓸것은, 10번 데이터는 10번의 컴퓨터에게 처리하게 한다고 문제에 주어져있다.  

처음에 작성했던 규칙성 찾는 코드는 그냥 제곱하여 1의자리를 비교하는 코드였고 틀리지는 않음.