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

Pythonで配列の素元の合計が素数であるかどうかを確認します


配列numsがあるとします。指定された配列内のすべての素元の合計も素元であるかどうかを確認する必要があります

したがって、入力がnums =[1,2,4,5,3,3]のようである場合、すべての素数の合計が(2 + 5 + 3 + 3)=13であり、13もであるため、出力はTrueになります。プライム。

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

  • MAX:=10000
  • ふるい:=サイズMAXのリストとtrueで埋める
  • 関数generate_list_of_primes()を定義します
  • sieve [0]:=False、sieve [1]:=False
  • 2〜MAX-1の範囲のiの場合は、
    • sieve [i]が真の場合、
      • 2 ^ iからMAXの範囲のjの場合、iを増やします
        • sieve [j]:=False
  • メインの方法から次の手順を実行します。
  • generate_list_of_primes()
  • 合計:=0
  • 範囲0からarr-1のサイズのiの場合、do
    • sieve [arr [i]]が真の場合、
      • 合計:=合計+ arr [i]
  • sieve [total]がtrueの場合、
    • Trueを返す
  • Falseを返す

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

サンプルコード

MAX = 10000
sieve = [True] * MAX
 
def generate_list_of_primes() :
   sieve[0] = False
   sieve[1] = False
     
   for i in range(2, MAX) :
      if sieve[i] :
         for j in range(2**i, MAX, i) :
           sieve[j] = False
     
def solve(arr) :
   generate_list_of_primes()
   total = 0
   for i in range(len(arr)) :
      if sieve[arr[i]] :
         total += arr[i]

   if sieve[total] :
      return True
   return False

nums = [1,2,4,5,3,3]
print(solve(nums))

入力

[1,2,4,5,3,3]

出力

True

  1. Pythonプログラムで配列の合計を見つける

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列の合計を計算するために必要な配列が与えられます。 合計を取得するために各インデックスで配列と要素全体をトラバースするブルートフォースアプローチについては、以下で説明します。合計を取得するための各インデックスについては、以下で説明します。 例 # sum function def sum_(arr,n):    # using built-in function    return(sum(arr)) # main arr = [11,22,33,44,55,66

  2. 配列の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '