Print
카테고리: [ Algorithm ]
조회수: 6963

문제:

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)