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

Pythonプログラムで最大積と合計がN-Set-2に等しいNの4つの因子を見つけます


数Nがあるとすると、Nのすべての因子を見つけて、次のようにNの4つの因子の積を返す必要があります。4つの因子の合計はNと同じです。4つの因子の積は最大です。製品を最大化するために、4つの要素すべてを互いに等しくすることができます。

したがって、入力がN =60の場合、出力は次のようになります。すべての因子は-> 1 2 3 4 5 6 10 12 15 20 30 60であり、製品は50625です。これは、製品を作成するために15が4回選択されているためです。最大。

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

  • 要因:=新しいリスト

  • 1から(nの平方根)+ 1の整数までの範囲のiの場合、do

    • n mod iが0と同じ場合、

      • 因子の最後にiを挿入します

      • 因子の最後に(n / i)の整数を挿入します

  • リスト要素を並べ替える

  • 表示要素

  • final_prod:=1、フラグ:=1

  • 0から因子のサイズまでの範囲のiについては、次のようにします

    • iから因子のサイズまでの範囲のjについては、次のようにします

      • jから因子のサイズまでの範囲のkについては、次のようにします

        • y:=n-ファクター[i]-ファクター[j]-ファクター[k]

        • y <=0の場合、

          • ループから出てきます

        • n mod yが0と同じ場合、

          • フラグ:=0

  • final_prod:=ファクターの最大値[i]*ファクター[j]*ファクター[k]* y、final_prod

  • フラグが0と同じ場合、

    • final_prodを表示

  • それ以外の場合

    • 「不可能」と表示

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

from math import *
def get_factors(n) :
   factors = []
   for i in range(1, int(sqrt(n)) + 1) :
      if n % i == 0 :
         factors.append(i)
         factors.append(n // i)
   factors.sort()
   print("Factors are ", factors)
   final_prod = 1
   flag = 1
   for i in range(0, len(factors)) :
      for j in range(i, len(factors)) :
         for k in range(j, len(factors)) :
            y = n - factors[i] - factors[j] - factors[k]
            if y <= 0 :
               break
            if n % y == 0 :
               flag = 0
               final_prod = max(factors[i] * factors[j] * factors[k] * y , final_prod)
   if flag == 0 :
      print("Product is", final_prod)
   else :
      print("Not possible")

n = 60
get_factors(n)

入力

60

出力

Factors are [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60] Product is 50625

  1. 数の奇数因子の合計を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数値入力nが与えられた場合、タスクは数値の奇数因子の合計を見つけることです。 ここでは、最初にすべての偶数の要因を排除する必要があります。 すべての偶数因子を削除するために、nを2で割り切れるまで繰り返し除算します。このステップの後、数の奇数因子のみを取得します。 以下は実装です- 例 import math def sumofoddFactors( n ):    #prime factors    res = 1    # ignore e

  2. 数の偶数因子の合計を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数値入力nが与えられた場合、タスクは数値の偶数因子の合計を見つけることです。 ここでは、最初にすべての奇妙な要因を排除する必要があります。 入力された数値が奇数の場合、偶数の因数はなく、直接ゼロを返します。それ以外の場合は、以下のコードのアプローチに従います。 以下は実装です- 例 import math # Returns sum of all even factors of n. def sumofFactors(n) :    # If n is odd   &nbs