강력수란 무엇입니까?
강한 숫자는 자릿수의 계승의 합과 같은 숫자입니다.
예
145 Factorial of 1=1 Factorial of 4=24 Factorial of 5=120 Sum=1+24+120 =145
다음 프로그램은 입력된 숫자가 강한 숫자인지 확인하는 프로그램입니다. 숫자가 강한 숫자이면 'True'를 반환하고, 그렇지 않으면 'False'를 반환합니다.
-
isStrong() 두 가지 함수를 사용하고 있습니다. 숫자가 강한지 여부를 결정하는 두 번째 방법은 factorial()입니다. 전달된 숫자의 계승을 반환합니다.
-
factorial() isStrong() 내부에서 호출됩니다. 모든 자릿수(n%10)의 계승을 가져와 합계에 더합니다.
-
모든 자릿수의 계승을 합산한 후 합계를 원래 숫자와 비교하여 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
n을(를) 복사하는 이유 num으로 isStrong()에서 ? while 루프를 반복할 때 n 값은 0으로 변경됩니다. 그러나 나중에 합계와 원래 값을 비교해야 하므로 n 값을 변경하기 전에 일부 변수에 복사해야 합니다.피>
-
factorial() 재귀를 사용하여 숫자의 계승을 계산합니다.
예시
def factorial(d): if(d==1 or d==0): return 1 return d*factorial(d-1) def isStrong(n): num=n sm=0 while(n>0): digit=n%10 sm=sm+factorial(digit) n=n//10 if(sm==num): return True else: return False print("Input a number") a=int(input()) print(isStrong(a))
출력
Input a number 145 True