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

Pythonの強力な整数


2つの正の整数xとyがあるとすると、いくつかの整数i>=0とj>=0に対してx^i + y ^ jに等しい場合、整数は強力であると言えます。すべてのリストを見つける必要があります。 -値がbound以下の強力な整数。

したがって、入力がx=2およびy=3のようで、境界が10の場合、出力は[2,3,4,5,7,9,10]となり、2 =2 ^ 0 +3^となります。 0 3 =2 ^ 1 + 3 ^ 0 4 =2 ^ 0 + 3 ^ 1 5 =2 ^ 1 + 3 ^ 1 7 =2 ^ 2 + 3 ^ 1 9 =2 ^ 3 + 3 ^ 0 10 =2 ^ 0 + 3 ^ 2

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

  • a、bを0として初期化します
  • res:=新しいリスト
  • xが1と同じで、yが1と同じ場合、
    • バインドされている場合>=2の場合、
      • resの最後に2を挿入
    • それ以外の場合、xが1と同じ場合、
      • y ^ b + 1 <=バインドされている間、実行
        • y ^ b+1をresに挿入
        • b:=b + 1
    • それ以外の場合、yが1と同じ場合、
      • x ^ a + 1 <=バインドされている間、実行
        • x ^ a+1をresに挿入
        • a:=a + 1
    • それ以外の場合、
      • x ^ a + 1 <=バインドされている間、実行
        • x ^ a + y ^ b <=バインドされている場合、
          • b:=b + 1
        • それ以外の場合、
          • a:=a + 1
          • b:=0

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

class Solution:
   def powerfulIntegers(self, x, y, bound):
      a,b=0,0
      res=[]
      if x==1 and y==1:
         if bound>=2:
            res.append(2)
         elif x==1:
            while y**b+1<=bound:
               res.append(y**b+1)
               b+=1
         elif y==1:
            while x**a+1<=bound:
               res.append(x**a+1)
               a+=1
         else:
            while x**a+1<=bound:
               if x**a+y**b<=bound:
                  res.append(x**a+y**b)
                  b+=1
         else:
            a+=1
            b=0
      return list(set(res))
ob = Solution()
print(ob.powerfulIntegers(2,3,10))

入力

2,3,10

出力

[2, 3, 4, 5, 7, 9, 10]

  1. Pythonのissuperset()

    この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',

  2. Pythonのカレンダー

    Pythonのカレンダーモジュールには、カレンダーと日付に関連するすべての機能を処理する機能があります。これは、Pythonプログラムで日付を使用するための多くの組み込み関数を備えた、非常に広く使用されているモジュールの1つです。 例 import calendar print(calendar.calendar(2019)) 出力 上記のコードを実行すると、次の結果が得られます-                            2019 &nbs