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

Pythonで2つの数値の約数の合計が同じかどうかを確認します


2つの数pとqがあるとします。これらの2つの数のすべての除数の合計が同じであるかどうかを確認する必要があります。

したがって、入力がp =559、q =703の場合、出力はTrueになります。559の約数は1、13、43、703は1、19、37です。除数の合計は57です。

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

  • 関数divSum()を定義します。これにはnがかかります
  • 合計:=1
  • i:=2
  • i * i <=nの間、do
    • nがiで割り切れる場合、
      • 合計:=合計+ i +(n / i)のフロア
    • i:=i + 1
  • 合計を返す
  • メインメソッドから、divSum(p)がdivSum(q)と同じ場合はtrueを返し、それ以外の場合はfalseを返します

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

サンプルコード

from math import floor
 
def divSum(n):
   total = 1
   i = 2
   while i * i <= n:
      if n % i == 0:
         total += i + floor(n / i)
      i += 1
 
   return total
   
def solve(p, q):
   return divSum(p) == divSum(q)

p = 559
q = 703
print(solve(p, q))

入力

559, 703

出力

True

  1. Pythonで葉のシーケンスが2つの葉と同じであるかどうかを確認するプログラム

    2つの二分木があるとします。両方の木の左から右への葉の順序が同じであるかどうかを確認する必要があります。 したがって、入力が次のような場合 両方のツリーのシーケンスが[2、6]であるため、出力はTrueになります。 これを解決するには、次の手順に従います。 c:=新しいリスト 関数inorder()を定義します。これが定着し、c cがnullの場合、 c:=新しいリスト rootがnullでない場合、 順序(ルートの左側、c) ルートの左側がnullで、ルートの右側がnullの場合、 cの最後にrootの値を挿入 順序(ルートの権利、c) return c

  2. 2つの数の最大公約数のためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの整数が与えられているので、2つの数値の最大公約数を表示する必要があります ここでは、入力として受け取る2つの数値の最小値を計算しています。各値を1から計算された最小値まで除算することによって計算されて除数を計算するループ 条件が真であると評価されるたびに、カウンターは1ずつ増加します。 それでは、以下の実装の概念を見てみましょう- 例 a = 5 b = 45 count = 0 for i in range(1, min(a, b)+1):    if a%i==0 an