Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem tổng các phần tử nguyên tố của mảng có phải là số nguyên tố hay không trong Python

Giả sử chúng ta có một số mảng. Chúng ta phải kiểm tra xem tổng của tất cả các phần tử nguyên tố trong mảng đã cho cũng là số nguyên tố hay không

Vì vậy, nếu đầu vào giống như nums =[1,2,4,5,3,3], thì đầu ra sẽ là Đúng vì tổng của tất cả các số nguyên tố là (2 + 5 + 3 + 3) =13 và 13 cũng là nguyên tố.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • MAX:=10000
  • sàng:=danh sách có kích thước MAX và điền bằng true
  • Xác định một hàm create_list_of_primes ()
  • sàng [0]:=Sai, sàng [1]:=Sai
  • đối với tôi trong phạm vi 2 đến MAX - 1, thực hiện
    • nếu sieve [i] là true, thì
      • đối với j trong phạm vi 2 ^ i đến MAX, tăng thêm i
        • sàng [j]:=Sai
  • Từ phương thức chính, hãy làm như sau:
  • create_list_of_primes ()
  • tổng số:=0
  • đối với tôi trong phạm vi từ 0 đến kích thước của arr - 1, thực hiện
    • nếu sieve [arr [i]] là true, thì
      • tổng số:=total + arr [i]
  • nếu sàng [tổng] là đúng, thì
    • trả về True
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Mã mẫu

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))

Đầu vào

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

Đầu ra

True