Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 자기애 수(암스트롱 수) 출력하는 방법

자기애 수(암스트롱 수)란?

자기애 수(Narcissistic Number)는 '암스트롱 수(Armstrong Number)'라고도 불리는 특별한 형태의 숫자입니다. 정의를 살펴보면, 각 자릿수를 자릿수의 개수만큼 거듭제곱한 값들의 합이 원래 수와 같아지는 수를 의미합니다.

예를 들어 다음과 같은 수들이 모두 자기애 수에 해당합니다.

  • 1~9까지의 한 자리 수: 자기 자신의 1제곱이므로 항상 조건을 만족합니다.
  • 153: 세 자리 수이므로 1³ + 5³ + 3³ = 1 + 125 + 27 = 153
  • 370: 3³ + 7³ + 0³ = 27 + 343 + 0 = 370

파이썬 구현 코드

이러한 자기애 수는 아래 코드를 실행하면 손쉽게 출력할 수 있습니다. 숫자를 문자열로 변환한 뒤 각 자릿수를 분리하고, 자릿수 개수만큼 거듭제곱하여 합산하는 방식으로 동작합니다.

def print_narcissistic_nums(start, end):
    for i in range(start, end + 1):
        # 숫자를 리스트 형태의 자릿수로 변환
        digits = list(map(int, str(i)))
        total = 0
        length = len(digits)
        for d in digits:
            total += d ** length
        if total == i:
            print(i)

print_narcissistic_nums(1, 380)

실행 결과

위 코드를 실행하면 1부터 380 사이에 존재하는 자기애 수가 차례대로 출력됩니다.

1
2
3
4
5
6
7
8
9
153
370
371