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

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


この記事では、以下に示す問題ステートメントの解決策について学習します-

問題の説明

数値入力nが与えられた場合、タスクは数値の奇数因子の合計を見つけることです。

ここでは、最初にすべての偶数の要因を排除する必要があります。

すべての偶数因子を削除するために、nを2で割り切れるまで繰り返し除算します。このステップの後、数の奇数因子のみを取得します。

以下は実装です-

import math
def sumofoddFactors( n ):
   #prime factors
   res = 1
   # ignore even factors
   while n % 2 == 0:
      n = n // 2
   for i in range(3, int(math.sqrt(n) + 1)):
      count = 0
      curr_sum = 1
      curr_term = 1
      while n % i == 0:
         count+=1
         n = n // i
         curr_term *= i
         curr_sum += curr_term
      res *= curr_sum
   # n is a prime number.
   if n >= 2:
      res *= (1 + n)
      return res
# main
n = 27
print(sumofoddFactors(n))

出力

41

以下の図に示すように、すべての変数はグローバルフレームで宣言されます-

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

結論

この記事では、数の奇数因子の合計を見つける方法について学びました


  1. 数の最大の素因数を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 正の整数nが与えられます。数の最大の素因数を見つける必要があります。 アプローチ 指定された数値を数値の約数で割って因数分解します。 最大素因数を更新し続けます。 例 import math def maxPrimeFactor(n):    # number must be even    while n % 2 == 0:       max_Prime = 2       n /= 1  

  2. 数の一意の素因数の積のためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 −数値nが与えられた場合、利用可能なすべての固有の素因数の積を見つけて返す必要があります。 たとえば、 Input: num = 11 Output: Product is 11 Explanation: Here, the input number is 11 having only 1 prime factor and it is 11. And hence their product is 11. アプローチ1 i=2からn+1までのforループを使用して、iがnの因数であるかどうかを確認し、次に