하샤드 수인지 확인하기  

 

글. 오상문 sualchi@daum.net

 

x가 하샤드 수라면 각 자릿수 합으로 나누어 떨어져야 한다.
12는 1+2 즉 3으로 나누어 떨어지므로 하샤드 수이다.

 

def solution1(x):
    total = 0
    n = x   
    while n > 0:              # 가장 끝자리 수를 구하여 합을 구함
        total += n%10
        n //= 10   
    answer = (x%total == 0)    # 논리식 결과 값인 True 또는 False 저장됨   
    return answer
 
def solution2(x):
    total = sum([int(i) for i in str(x)]) # 숫자를 문자열로 바꾸어 분리한 숫자 리스트 합
    answer = (x%total == 0)             # 논리식 결과 값인 True 또는 False 저장됨
    return answer 


#-----------------------------

for i in range(1,21):
  print(i, ':', solution1(i), solution2(i))

 

[실행 결과]
1 : True True
2 : True True
3 : True True
4 : True True
5 : True True
6 : True True
7 : True True
8 : True True
9 : True True
10 : True True
11 : False False
12 : True True
13 : False False
14 : False False
15 : False False
16 : False False
17 : False False
18 : True True
19 : False False
20 : True True

<이상>

반응형

+ Recent posts