하샤드 수인지 확인하기
글. 오상문 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
<이상>
'Python 기초' 카테고리의 다른 글
파이썬, 가장 큰 정사각형 넓이 구하기 (0) | 2019.10.09 |
---|---|
파이썬, 피보나치 수 구하기 (메모이제이션+재귀호출 방식) (0) | 2019.10.09 |
파이썬, 콜라츠 추측 (Collatz conjecture) 문제 (0) | 2019.10.08 |
파이썬, 리스트 안의 자료를 모두 삭제하기 (0) | 2019.10.06 |
파이썬, 연속된 같은 숫자는 싫어 (0) | 2019.10.05 |