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

PythonでさまざまなサブシーケンスGCDの数を見つけるプログラム


正の値の配列numがあるとします。 numsのすべての空でないサブシーケンスの中から異なるGCDの数を見つける必要があります。私たちが知っているように、数列のGCDは、数列内のすべての数を均等に分割する最大値です。

したがって、入力がnums =[4,6,18]の場合、gcd([4])=4、gcd([6])=6、gcd([18])=18であるため、出力は4になります。 gcd([4,6])=2、gcd([4,18])=2、gcd([6,18])=6、gcd([4,6,18])=2なので、すべての数値は[ 4,6,18,2]、4つの数字があります。

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

  • T:=最大数+ 1

  • nums:=すべての異なる数のnumsを含む新しいセット

  • ans:=0

  • 1からT-1の範囲のxの場合、実行

    • g:=0

    • xからT-1の範囲のyについては、各ステップでxずつ更新します。

      • yがnumsの場合、

        • g:=gcd(g、y)

      • gがxと同じ場合、

        • ループから出てくる

    • gがxと同じ場合、

      • ans:=ans + 1

  • ansを返す

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

from math import gcd
def solve(nums):
   T = max(nums) + 1
   nums = set(nums)
   ans = 0

   for x in range(1, T):
      g = 0
      for y in range(x, T, x):
         if y in nums:
            g = gcd(g, y)
         if g == x:
            break

      if g == x:
         ans += 1

   return ans

nums = [4,6,18]
print(solve(nums))

入力

[4,6,18]

出力

4

  1. リスト内で最大数を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 与えられたリスト入力では、与えられたリストの中で最大の数を見つける必要があります。 ここでは、2つのアプローチについて説明します 並べ替え手法の使用 組み込みのmax()関数を使用する アプローチ1-組み込みのsort()関数を使用する 例 list1 = [18, 65, 78, 89, 90] list1.sort() # main print("Largest element is:", list1[-1]) 出力 Largest element is:

  2. Pythonで素数を見つけるためのさまざまな方法

    まず、素数が何であるかを知る必要があります。 素数は常に正の整数であり、正確に2つの整数(1とその数自体)で割り切れます。1は素数ではありません。 次に、素数を見つけるためのいくつかの方法について説明します。 メソッド1 Forループの使用 例 def primemethod1(number):    # Initialize a list    my_primes = []    for pr in range(2, number):       isPrime = True