Python中的阿姆斯特朗数

假设我们有一个k位数字N。当每个数字的k次幂加到N时,N是一个Armstrong数字。因此,如果它是Armstrong数字,则必须返回true,否则返回false。

为了解决这个问题,我们将遵循以下步骤-

  • 幂:=数字位数

  • 温度:= n,res = 0

  • 当温度不为0时

    • res:= res +(temp mod 10)^幂

    • 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