문제 내용
숫자 145에는 신기한 성질이 있다.
각 자릿수의 팩토리얼(계승)을 더하면 자기 자신이 된다. (즉, 1!+4!+5! = 1+24+120 = 145이다.)
자연수 n을 입력 받고, 그 수가 145처럼 각 자릿수의 팩토리얼을 더해서 자기 자신이 되면 True를, 아니면 False를 출력하는 프로그램을 작성하시오.
문제 풀이
n = int(input())
a = n // 100
b = n //10 % 10
c = n % 10
fac1 = 1
fac2 = 1
fac3 = 1
abc_list=[a,b,c]
fac_list=[fac1,fac2,fac3]
check=[]
for abc,fac in zip(abc_list,fac_list):
while 1:
fac = fac * abc
abc = abc - 1
if abc == 0 or abc < 0:
check.append(fac)
break
if sum(check) == n:
print('True')
else :
print('False')
코드 결과
# 입력 예시 1
145
True
# 입력 예시 2
23
False
참고
'코드예시👨🏻💻▶️ 파이썬' 카테고리의 다른 글
파이썬 약수 찾기 (0) | 2020.10.21 |
---|---|
파이썬 알파벳 모래시계 출력하기 (0) | 2020.10.21 |
파이썬 빙고게임 만들기 (0) | 2020.10.21 |
파이썬 방 평수 계산하기 (0) | 2020.10.21 |
파이썬 반복문으로 오일러 상수 구하기 (0) | 2020.10.21 |