[SWEA] 10570. 제곱 팰린드롬 수

야금야금 공부·2023년 5월 18일
0

SWEA

목록 보기
34/43
post-thumbnail

10570. 제곱 팰린드롬 수


문제 풀이

  • 제곱 팰린드롬이란? 숫자 a와 제곱근 a가 모두 팰린드롬 수인 것
    만약 1일 경우, 제곱근을 씌우면 1.0이 되버려 팰린드롬이 아니게 된다.
    그러나 int로 감싸줄 경우, 3 1.7\sqrt{3} \space \fallingdotseq 1.7 이 1이 되버려 팰린드롬 수가 되버린다.

  • 따라서, int로 감싸준 후 다시 float로 감싸준 경우와 같다면, 팰린드롬인지 판별해준다.
    ex) n=3n = 3, 3 1.7\sqrt{3} \space \fallingdotseq 1.7
    float(int(3**0.5)) = float(1) = 1.0
    1.0은 제곱근 3과 같지 않으므로 팰린드롬 판별을 하지 않는다.

# 테스트 케이스 개수
t = int(input())

def palindrome(n):  # 팰린드롬 판별 함수

    if float(int(n)) == n:
        n = str(int(n))
        if n == n[::-1]:
            return 1
        return 0


for i in range(1, t + 1):

    a, b = map(int, input().split())
    ans = 0

    for num in range(a, b + 1):
    	# 숫자 num과 (num**0.5)가 모두 팰린드롬이면, +1
        if palindrom(num) and palindrom(num ** 0.5):
            ans += 1

    print(f"#{i} {ans}")

0개의 댓글