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

nの適切な約数がPythonでさらに完全な平方数になる確率を見つけるためのプログラム


数がnであるとすると、nの適切な約数がさらに完全な正方形になる確率を見つける必要があります。

したがって、入力がn =36の場合、36の適切な除数が8つあるため、出力は1/8になります。これらは、{1,2,3,4,6,9,12,18}であり、その中には1つの数(4)だけが完全な平方であり、偶数です。

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

  • n mod 4が0と同じでない場合、
    • 0を返す
  • それ以外の場合、
    • nc:=n、ptr:=2
    • l:=新しいリスト
    • ptr <=ncの平方根、do
      • a:=0
      • nc mod ptrは0と同じですが、
        • a:=a + 1
        • nc:=(nc / ptr)のフロア
      • a> 0の場合、
        • リストにaを追加しますl
      • ptr:=ptr + 1
    • nc> 1の場合、リストに1を追加しますl
    • k:=l [0]
    • d:=k + 1
    • no:=(k / 2)のフロア
    • l [インデックス1から終了まで]の各iについて、
        を実行します。
      • d:=d *(i + 1)
      • no:=no *(i / 2)+1のフロア
    • d:=d-1
    • nが完全な正方形の場合、
      • いいえ:=いいえ-1
    • g:=dのgcdとno
    • d:=d/gの床
    • no:=no/gのフロア
    • noが0と同じ場合、
      • 0を返す
    • それ以外の場合、
      • 小数部を返すno/d <​​/ li>

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

from math import gcd

def solve(n):
   if n % 4 != 0:
      return 0
   else:
      nc = n
      ptr = 2
      l = []
      while ptr <= nc ** 0.5:
         a = 0
         while nc % ptr == 0:
            a += 1
            nc = nc / ptr
         if a > 0:
            l += [a]
         ptr += 1
      if nc > 1:
         l += [1]
      k = l[0]
      d = k + 1
      no = int(k / 2)
      for i in l[1:]:
         d = d * (i + 1)
         no *= int(i / 2) + 1
      d = d - 1
      if int(n ** 0.5) ** 2 == n:
         no -= 1
      g = gcd(d, no)
      d = d // g
      no = no // g
      if no == 0:
         return 0
      else:
         return str(no) + '/' + str(d)

n = 36
print(solve(n))

入力

4, 27

出力

1/8

  1. Pythonプログラムで数の偶数因子の合計を見つける

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数値が与えられているので、数値のすべての偶数因子の合計を表示する必要があります。 アプローチ 数値が奇数かどうかを確認し、偶数の因子がないため、0を返します。 数が偶数の場合、計算を実行します。 20を除く他のすべての項は、偶数の因数の合計を生成するために乗算されます。 偶数因子のすべての奇数を削除するために、1である20を無視します。このステップの後、偶数因子のみを取得しました。 2は私たちが利用できる唯一の素数であることに注意してください。 次に、以下の実装を見てみましょう- 例 # math

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

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