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

数値をチェックするプログラムは、Pythonでは異なる階乗数値の合計として記述できます。


正の数nがあるとすると、nが一意の正の階乗数の合計として記述できるかどうかを確認する必要があります。

したがって、入力がn =144のような場合、出力は4のようにTrueになります。 + 5! =24 + 120 =144

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

  • 事実:=1

  • res:=新しいリスト

  • x:=2

  • 事実<=n、実行

    • resの最後にファクトを挿入

    • ファクト:=ファクト* x

    • x:=x + 1

  • res -1から0の範囲サイズのiの場合、1ずつ減らします。

    • n> =res [i]の場合、

      • n:=n --res [i]

  • nが0と同じ場合はtrueを返します

理解を深めるために、次の実装を見てみましょう-

class Solution:
def solve(self, n):
   fact = 1
   res = []
   x = 2
   while fact <= n:
      res.append(fact)
      fact = fact * x
      x += 1
   for i in range(len(res)-1,-1,-1):
      if n>=res[i]:
         n-=res[i]
   return n==0
ob = Solution()
print(ob.solve(144))
>

入力

144

出力

True

  1. 数字をチェックするプログラムがPythonで醜い数字かどうか

    数がnであるとすると、その素因数に2、3、または5しか含まれていないかどうかを確認する必要があります。 したがって、入力がn =18の場合、18の素因数は2と3であるため、出力はTrueになります。 これを解決するには、次の手順に従います- n <0の場合、 Falseを返す factor:=要素を含むリスト[2,3,5] ファクターの各iについて、 n mod iは0と同じですが、 n:=n / i nが1と同じ場合はtrueを返し、それ以外の場合はfalseを返します 理解を深めるために、次の実装を見てみましょう- 例 class Solution: &

  2. 数値が素数かどうかをチェックするPythonプログラム

    ここでは、1より大きい指定された数が素数であるかどうかをテストするプログラムを作成します。 素数は1より大きい正の整数であり、2つの因子1と、その数自体(たとえば、数:2、3、5、7…など)は2つの因子しかないため、素数です。 1と番号自体。 # Python program to check if the input number is prime or not #Take input from the user num = int(input("Please enter the number: ")) #Check if the given number is gre