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 ^ b + 1 <=バインドされている間、実行
- それ以外の場合、yが1と同じ場合、
- x ^ a + 1 <=バインドされている間、実行
- x ^ a+1をresに挿入
- a:=a + 1
- x ^ a + 1 <=バインドされている間、実行
- それ以外の場合、
- x ^ a + 1 <=バインドされている間、実行
- x ^ a + y ^ b <=バインドされている場合、
- b:=b + 1
- それ以外の場合、
- a:=a + 1
- b:=0
- x ^ a + y ^ b <=バインドされている場合、
- x ^ a + 1 <=バインドされている間、実行
- バインドされている場合>=2の場合、
理解を深めるために、次の実装を見てみましょう-
例
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]
-
Pythonのissuperset()
この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',
-
Pythonのカレンダー
Pythonのカレンダーモジュールには、カレンダーと日付に関連するすべての機能を処理する機能があります。これは、Pythonプログラムで日付を使用するための多くの組み込み関数を備えた、非常に広く使用されているモジュールの1つです。 例 import calendar print(calendar.calendar(2019)) 出力 上記のコードを実行すると、次の結果が得られます- 2019 &nbs