k자리 숫자 N이 있다고 가정합니다. N은 각 숫자의 k번째 거듭제곱이 N일 때 Armstrong 숫자입니다. 따라서 다음과 같은 경우 true를 반환해야 합니다. 암스트롱 번호, 그렇지 않으면 거짓입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- power :=자릿수
- temp :=n, res =0
- 온도가 0이 아닌 동안
- res :=res + (temp mod 10) ^ power
- temp :=temp / 10 //정수 나누기
- res =n이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
예시
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
import math class Solution(object): def poww(self,base,power): res = 1 while power: if power & 1: res *= base base *= base power>>=1 return res def isArmstrong(self, n): power =int(math.log10(n)) + 1 temp = n res = 0 while temp: res += (self.poww(temp%10,power)) temp//=10 return res == n ob1 = Solution() print(ob1.isArmstrong(153))
입력
153
출력
true