일일히 하나씩 계산을 하면 불필요한 계산이 많이 들어갈 것으로 생각됨
1) 1~n까지 제곱의 값이 1000미만인것만 추리고 (범위제한 1000)
그 중에서, 회문 문자열일 경우만 arr 배열에 넣어줌
( 제곱의 값이 1000미만임으로 최대 3자리수 임으로, 각 첫번째와 마지막 인덱스만 확인하면 되어 [-1]과 같이 인덱싱을 했는데, 길이가 더 길어질 경우 [ : : -1] 과 같이 슬라이싱을 이용하여 비교하면 됨. )
2) a~b까지의 숫자 중에 제곱 팰린드롬 수를 찾으라고 했을 때
a~b까지의 숫자가 arr배열에 몇개 있는지 찾아서 출력해줌.
T = int(input())
arr = list()
x=1
while x**2<1000:
new_x = str(x)
x_square =str(x**2)
if new_x[0]==new_x[-1] and x_square[0]==x_square[-1]:
arr.append(x**2)
x=x+1
for tc in range(1,1+T):
a,b = map(int,input().split())
cnt = 0
for i in arr:
if a<= i <=b:
cnt+=1
print(f"#{tc} {cnt}")