규도자 개발 블로그
[기타/파이썬3(python3)] Kaprika넘버 본문
문제
Kaprika수를 구하라. Kaprika 수란?
예를 들어 네 자리 숫자 2025의 가운데를 갈라보면 20과 25의 두개의 숫자가 생긴다. 이 두개의 숫자를 더하면 45이고, 45를 제곱하면 2025가 되어 원상태로 되돌아간다. 이러한 성질을 갖는 수를 Kaprika수 라고 한다. 또 81은 가운데를 잘라보면 8 과 1로 갈라지고, 더하면 9가 되고 다시 제곱하면 81로 돌아간다. 그러므로 81은 두 자리 숫자의 Kaprika수가 되는 것이다. 네 자리로 구성된 kaprika 수를 모두 구하는 프로그램을 작성하시오.
입력
입력은 없다
출력
[2025, 3025, 9801]
입출력 예
입력 | 출력 |
---|---|
[2025, 3025, 9801] |
풀이
kaprika_array = []
for i in range(1000, 10000):
current_numbers_footer = str(i)[2:]
current_numbers_header = str(i)[:2]
managed_number = int(current_numbers_header) + int(current_numbers_footer)
managed_number_sqaured = managed_number ** 2
if i == managed_number_sqaured:
kaprika_array.append(i)
print(kaprika_array)
설명
먼저 문제의 설명대로 Kaprika숫자인지 검사하는 식을 만든다. 문제에서는 네 자리의 Kaprika숫자를 구하는 것이기 때문에 범위를 1000에서 9999까지로 제한한다. current_numbers_footer
는 뒤의 두 자리 숫자를 문자열 형태로 담아두고 current_numbers_header
는 앞의 두 자리 숫자를 담아둔다. 그리고 해당 숫자를 강제형변환하여 더하고 제곱한 수를 현재 반복문이 돌고 있는 숫자와 비교하여 같다면 Kaprika숫자이므로 Kaprika숫자를 담아두는 배열에 추가한다.
'알고리즘 > 풀이' 카테고리의 다른 글
[백준/8958/파이썬3(python3)] OX퀴즈 (0) | 2019.02.14 |
---|---|
[백준/4344/파이썬3(python3)] 평균은 넘겠지 (0) | 2019.02.14 |
[백준/4673/파이썬3(python3)] 셀프 넘버 (6) | 2018.10.14 |
[백준/2579/파이썬3(python3)] 계단 오르기 (0) | 2018.10.14 |
[백준/10809/파이썬3(python3)] 알파벳 찾기 (0) | 2018.09.27 |
Comments