Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのアームストロング数


k桁の数値Nがあるとします。各桁のk乗の合計がNになると、Nはアームストロング数になります。したがって、次の場合はtrueを返す必要があります。アームストロング数、それ以外の場合はfalse。

これを解決するには、次の手順に従います-

  • 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

  1. アームストロング数をチェックするPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 整数nが与えられた場合、与えられた整数がアームストロング数であることを確認する必要があります。 正の整数は、次の場合、n次のアームストロング数と呼ばれます abcd... = a^n + b^n + c^n + d^n + … ここでは、3桁のアームストロング数、つまり3桁のブルートフォースアプローチについて説明します。 オーダーnのアームストロング番号を確認するには、3を行番号7の対応するオーダー値に置き換える必要があります。 それでは、実装を見てみましょう- 例

  2. Pythonでアームストロング数を生成する方法は?

    3桁の数字は、その数字の3乗の合計が数字自体に等しいアームストロング数と呼ばれます。数値がこの条件を満たすかどうかを確認するために、数値の各桁が右から連続して分離され、その立方体が累積的に加算されます。結局、合計が元の数と等しいことがわかった場合、それはアームストロング数と呼ばれます。 例 次のPythonコードは、100から999までのすべてのナルシシスト数を出力します for num in range(100,1000):   temp=num   sum=0   while temp>0:     digit=temp%10 &nb