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

2つの数値(m、n)が友愛数であるかPythonを使用していないかを確認するにはどうすればよいですか?


友愛数は2つの異なる数であるため、それぞれの適切な除数の合計が他の数と等しくなります。 (数値の適切な除数は、数値自体以外のその数値の正の因数です。たとえば、6の適切な除数は1、2、および3です。)

Pythonでは、これらの数値のそれぞれの合計を取り、それらを他の数値と比較することで、これらの数値を見つけることができます。たとえば、

def are_amicable(x, y)
   if x==y:
      return False
   # Find sum of their proper divisors
   sum_x = sum(e for e in range(1, x//2+1) if x % e == 0)
   sum_y = sum(e for e in range(1, y//2+1) if y % e == 0)
   
   #Return true of they satisfy the last condition
   return sum_x==y and sum_y==x
print(are_amicable(15, 20))
print(are_amicable(220, 284))
これにより出力が得られます

False
True

  1. 2つの数が友愛数であるかどうかをチェックするPythonプログラム

    友愛数は2つの異なる数であるため、それぞれの適切な除数の合計が他の数と等しくなります。 2つの数値が友愛数であるかどうかを確認する必要がある場合は、数値を反復処理し、剰余演算子を使用するメソッドを定義できます。以前に定義された関数を呼び出して、2つの数値が友愛数であるかどうかを判断する別のメソッドが定義されています。 以下は同じのデモンストレーションです- 例 import math def divided_sum_val(my_val) :    res = 0    for i in range(2, int(math.sqrt(my_val)

  2. 2つのツリーのすべてのレベルがアナグラムであるかどうかをPythonで確認します

    2つの二分木が提供されているとします。二分木の各レベルが他の二分木の同じレベルのアナグラムであるかどうかを確認する必要があります。アナグラムの場合はTrueを返し、そうでない場合はFalseを返します。 したがって、入力が次のような場合 、出力はTrueになります。 これを解決するには、次の手順に従います- tree_1は最初のツリーのルートノードであり、tree_2は2番目のツリーのルートノードです。 tree_1がnullと同じで、tree_2がnullと同じ場合、 Trueを返す tree_1がnullと同じであるか、tree_2がnullと同じである場合、 Fa