문제
A number with k digits is an Armstrong number if the sum of each digit raised to the power k equals the number. For example 153 = 1³ + 5³ + 3³.
Implement is_armstrong(n).
Input
n: A non-negative integer.
Output
Return true if n is an Armstrong number.
제약 조건
0 ≤ n ≤ 10¹⁸
예시
입력:
n = 153
예상 출력:
expected = True
입력:
long long n = 153;
예상 출력:
bool expected = true;
입력:
long n = 153;
예상 출력:
bool expected = true;
설명
1³ + 5³ + 3³ = 1 + 125 + 27 = 153.
입력:
n = 10
예상 출력:
expected = False
입력:
long long n = 10;
예상 출력:
bool expected = false;
입력:
long n = 10;
예상 출력:
bool expected = false;
설명
1² + 0² = 1, which is not 10.
접근 방법
먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.
힌트 1
Count how many digits the number has before summing powers.
힌트 2
Compare the original number with the sum of each digit raised to that digit count.
힌트 3
Remember that 0 is a special one-digit case.
예상 복잡도
O(k) time, O(1) extra space
참고 자료
이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.