문제:
Armstrong Number는 임의의 숫자가 있는데, 그 숫자와 각 자리수의 세제곱이 같은 수를 뜻한다.
예를 들어 370의 경우 3^3 + 7^3 + 0^3 = 370 이니 Armstrong Number이다.
풀이 1:
for inx in range(100, 1000, 1): # 100부터 999까지 반복 num1 = inx // 100 # 백의 자리 숫자 분리 num2 = (inx%100) // 10 # 십의 자리 숫자 분리 num3 = ((inx%100) % 10) # 일의 자리 숫자 분리 # 각 자리수 별로 분리한 숫자들의 세제곱의 합을 구한다. result = (num1**3) + (num2**3) + (num3**3) if(inx == result ): print( inx )
풀이 2:
for i in range(100,1000,1): a1 = int(str(i)[0]) a2 = int(str(i)[1]) a3 = int(str(i)[2]) if i == (a1**3 + a2**3 + a3**3 ): print(i)