암스트롱 수란 무엇인가?
세 자리 숫자의 각 자릿수를 세제곱하여 모두 더한 값이 원래 숫자와 같을 때, 그 숫자를 암스트롱 수(Armstrong Number)라고 부릅니다. 어떤 숫자가 이 조건을 만족하는지 확인하려면 오른쪽부터 한 자릿수씩 차례로 분리한 뒤, 각 자릿수의 세제곱 값을 누적해서 더합니다. 마지막에 계산된 합이 원래 숫자와 같다면 그 숫자는 암스트롱 수입니다.
예를 들어 153은 대표적인 암스트롱 수입니다. 1³ + 5³ + 3³ = 1 + 125 + 27 = 153이 되어 원래 수와 일치하기 때문입니다.
파이썬 구현 예제
아래 파이썬 코드는 100부터 999 사이의 모든 암스트롱 수를 출력합니다.
for num in range(100,1000): temp=num sum=0 while temp>0: digit=temp%10 sum=sum+digit**3 temp=temp//10 if sum==num: print (num)
동작 원리
temp%10: 나머지 연산자를 사용해 가장 오른쪽 자릿수 하나를 추출합니다.sum+digit**3: 추출한 자릿수를 세제곱하여 누적 합계에 더합니다.temp//10: 정수 나눗셈으로 이미 처리한 자릿수를 제거합니다.- 모든 자릿수 처리 후 누적합(
sum)과 원래 수(num)가 같으면 해당 수를 출력합니다.
실행 결과
위 코드를 실행하면 다음과 같이 네 개의 암스트롱 수가 출력됩니다.
153 370 371 407
각 숫자를 직접 검증해 보면, 370은 3³ + 7³ + 0³ = 27 + 343 + 0 = 370, 371은 3³ + 7³ + 1³ = 27 + 343 + 1 = 371, 407은 4³ + 0³ + 7³ = 64 + 0 + 343 = 407로 모두 조건을 만족합니다.