본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Bronze 2][Python] 2028번 : 자기복제수

by 빛밤하늘 2021. 4. 27.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

2028번: 자기복제수

어떤 자연수 N을 제곱했을 때, 그 제곱수의 맨 뒷자리에 원래의 수 N이 다시 나타나면, 우리는 그 수 N을 자기복제수라고 한다. 예를 들면, 5의 제곱은 52는 25이고 25의 맨 뒷자리에 원래의 수 5가

www.acmicpc.net

 

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# 첫 줄에는 테스트 케이스의 개수 T를 입력합니다.
# 1 <= T <= 20
T = int(input())

# 테스트 케이스의 개수 T만큼 반복합니다.
for test_case in range(T):
    # 자연수 N을 입력합니다.
    # 1 <= N <= 1000
    N = int(input())

    # N의 제곱을 구하고 문자열 형태로 저장한 변수를 선언합니다.
    N_square = str(N * N)
    
    # 자연수 N의 길이를 저장하는 변수를 선언합니다.
    N_length = len(str(N))

    # N의 제곱에서 맨 뒷자리의 숫자가 N과 같다면
    if N_square[-N_length:] == str(N):
        # YES를 출력합니다.
        print("YES")
    # N의 제곱에서 맨 뒷자리의 숫자가 N과 다르다면
    else:
        # NO를 출력합니다.
        print("NO")

결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글