Computer >> Máy Tính >  >> Lập trình >> Python

Số Armstrong bằng Python


Giả sử chúng ta có k chữ số N. N là số Amstrong khi lũy thừa thứ k của mỗi chữ số tính bằng N. Vì vậy, chúng ta phải trả về true nếu nó là một Số Armstrong, nếu không thì sai.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • power:=số chữ số
  • tạm thời:=n, res =0
  • trong khi nhiệt độ không phải là 0
    • res:=res + (temp mod 10) ^ power
    • temp:=temp / 10 // phép chia số nguyên
  • nếu res =n, trả về true, ngược lại là false.

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

153

Đầu ra

true