문제설명

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 n을 입력받아 n이 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

예시

  • x = 10
    자릿수의 합은 1이고 10은 1로 나누어 떨어지므로 return true
  • x = 12
    자릿수의 합은 3이고 12는 3으로 나누어 떨어지므로 return true
  • x = 11
    자릿수의 합은 2이고 11은 2로 나누어떨어지지 않으므로 return false

해설

def solution(x):
    sum = 0
    for i in str(x):
        sum += int(i)
    if x%sum == 0:
        return True
    else:
        return False
  1. 자릿수의 합을 구하기 위해 str을 이용해서 x를 문자열로 바꿉니다. 그리고 반복문을 이용해서 자릿수를 하나씩 뽑아내서 sum에다가 더해줍니다. 결국 sum = 자릿수의 합
  1. 자릿수의 합이 x로 나누어 떨어지는 것을 판단하기 위해서 x%sum을 해줍니다.

  2. 나누어떨어지면(==0) return True, 아니면 나누어떨어지지 않으므로 return False

채점결과

레벨1_하샤드수.PNG