मान लीजिए हमारे पास एक k-अंकीय संख्या N है। N एक आर्मस्ट्रांग संख्या है जब इसके प्रत्येक अंक का k-वां घातांक N के बराबर होता है। इसलिए हमें true लौटाना है यदि यह एक आर्मस्ट्रांग संख्या है, अन्यथा false।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- power := अंकों की संख्या
- temp := n, res = 0
- जब temp 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