독학개념 📖▶️ 파이썬

파이썬 팩토리얼 출력 프로그램

코뮤니티 2020. 10. 29. 18:03

문제 내용

숫자 145에는 신기한 성질이 있다. 각 자릿수의 팩토리얼(계승)을 더하면 자기 자신이 된다.

즉, 1!+4!+5! = 1+24+120 = 145이다.

 

자연수 n을 입력 받고, 그 수가 145처럼 각 자릿수의팩토리얼을 더해서 자기 자신이 되면 True를, 아니면 False를 출력하는 프로그램을 작성하시오.

 

[입력 예시 1]

145

[출력 예시 1]True

 

[출력 예시 2]False

[입력 예시 2]

78

 

 

문제 풀이

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
231
False

#입력 예시2
145
True

 


 

 

나와 어울리는 개발자 유형 찾기

MBTI로 알아보는 개발자 유형 내 안의 개발자를 찾아서...⭐

comu.codeuniv.kr