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

Pythonの要素のリストの最大公約数を見つけるプログラム


numsという要素のリストがあるとすると、各整数を除算する最大の正の値を見つける必要があります。

したがって、入力がnums =[15、81、78]の場合、出力は3になります。これは、3が15、81、および78すべてを除算する最大の整数であるためです。

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

  • numsのサイズが1と同じ場合、

    • nums [0]

      を返します
  • div:=nums[0]とnums[1]のgcd)

  • numsのサイズが2と同じ場合、

    • divを返す

  • 範囲1からnums-2のサイズのiの場合、実行

    • div:=divとnumsのgcd[i + 1]

    • divが1と同じ場合、

      • divを返す

  • divを返す

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

from math import gcd
def solve(nums):
   if len(nums) == 1:
      return nums[0]

   div = gcd(nums[0], nums[1])

   if len(nums) == 2:
      return div

   for i in range(1, len(nums) - 1):
      div = gcd(div, nums[i + 1])
      if div == 1:
         return div

return div

nums = [15, 81, 78]
print(solve(nums))

入力

[15, 81, 78]

出力

3

  1. リスト内の要素の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力としてリストが与えられた場合、与えられたリストの合計を計算する必要があります。 ここでは、考慮すべき2つのアプローチがあります。つまり、組み込み関数を使用する方法と、ブルートフォースアプローチを使用する方法です。 アプローチ1-組み込み関数の使用 例 # main arr = [1,2,3,4,5] ans = sum(arr) print ('Sum of the array is ',ans) 出力 15 すべての変数と関数はグローバルスコープで宣言されて

  2. 3つのソートされた配列で共通の要素を見つけるPythonプログラム?

    ここでは、最初にユーザー入力のソートされていない配列である3つの配列を作成し、次に3つのソートされていない配列すべてをソートします。配列のサイズはn1、n2、n3です。すべての配列の開始アドレスは0.i =0、j =0、k =0です。次に、3つの配列のすべての要素をトラバースし、3つの配列の要素が同じかどうかを確認します。そうでない場合は、要素を印刷し、そうでない場合は次の要素に進みます。 例 A = {1, 2, 3, 4, 5} B = {2, 5, 12, 22, 7} C = {1, 9, 2, 89, 80} 出力 2 アルゴリズム commonele(A1,A2,A3,n