Pythonで最大積と合計がN-Set-2に等しいNの4つの因子を見つけます
-
4つの要素の合計はNと同じです。
-
4つの要素の積が最大になります。
製品を最大化するために、4つの要素すべてを互いに等しくすることができます。
したがって、入力がN =60のような場合、すべての要素が→1 2 3 4 5 6 10 12 15 20 30 60であるため、出力は50625になり、15が4回選択されているため、それらの積は50625になります。製品を最大にする。
これを解決するには、次の手順に従います-
-
my_map:=新しいマップ
-
v:=新しいリスト、v1:=新しいリスト
-
範囲1のiから(n)+ 1の平方根の上限まで、実行
-
n mod iが0と同じ場合、
-
vの最後にiを挿入します
-
iが(n / i)の整数部分と同じでなく、iが1と同じでない場合、
-
vの最後に(n / i)の整数部分を挿入します
-
-
-
-
s:=vのサイズ
-
最大:=-1
-
map1:=サイズ(n + 5)の配列これを0で埋める
-
0からsの範囲のiの場合、実行
-
iからsの範囲のjについては、次のようにします
-
v [i] + v [j]
-
v1の最後にv[i]+v[j]を挿入します
-
map1 [v [i] + v [j]]:=[v [i]、v [j]]
-
my_map [v [i] + v [j]]:=1
-
-
-
-
s:=v1のサイズ
-
0からsの範囲のiの場合、実行
-
要素:=n-(v1 [i])
-
my_mapの要素の場合、
-
a:=map1 [v1 [i]、0]
-
b:=map1 [v1 [i]、1]
-
c:=map1 [n-v1 [i]、0]
-
d:=map1 [n-v1 [i]、1]
-
maximum:=a * b * c * dの最大値、最大値
-
-
-
最大値が-1と同じ場合、
-
「不可能」を表示
-
-
それ以外の場合
-
最大表示
-
例
理解を深めるために、次の実装を見てみましょう-
from math import sqrt, ceil, floor def get_product(n): my_map = dict() v = [] v1 = [] for i in range(1,ceil(sqrt(n)) + 1): if (n % i == 0): v.append(i) if (i != (n // i) and i != 1): v.append(n // i) s = len(v) maximum = -1 map1 = [0]*(n + 5) for i in range(s): for j in range(i, s): if (v[i] + v[j] < n): v1.append(v[i] + v[j]) map1[v[i] + v[j]] =[v[i], v[j]] my_map[v[i] + v[j]] = 1 s = len(v1) for i in range(s): element = n - (v1[i]) if (element in my_map): a = map1[v1[i]][0] b = map1[v1[i]][1] c = map1[n - v1[i]][0] d = map1[n - v1[i]][1] maximum = max(a * b * c * d, maximum) if (maximum == -1): print("Not Possible") else : print("Maximum product", maximum) n = 60 get_product(n)
入力
60
出力
Maximum product 50625
-
Pythonプログラムで数の偶数因子の合計を見つける
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数値が与えられているので、数値のすべての偶数因子の合計を表示する必要があります。 アプローチ 数値が奇数かどうかを確認し、偶数の因子がないため、0を返します。 数が偶数の場合、計算を実行します。 20を除く他のすべての項は、偶数の因数の合計を生成するために乗算されます。 偶数因子のすべての奇数を削除するために、1である20を無視します。このステップの後、偶数因子のみを取得しました。 2は私たちが利用できる唯一の素数であることに注意してください。 次に、以下の実装を見てみましょう- 例 # math
-
数の奇数因子の合計を見つけるためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数値入力nが与えられた場合、タスクは数値の奇数因子の合計を見つけることです。 ここでは、最初にすべての偶数の要因を排除する必要があります。 すべての偶数因子を削除するために、nを2で割り切れるまで繰り返し除算します。このステップの後、数の奇数因子のみを取得します。 以下は実装です- 例 import math def sumofoddFactors( n ): #prime factors res = 1 # ignore e