檢查Python陣列中素數元素的和是否為素數
假設我們有一個數組nums。我們必須檢查給定陣列中所有素數元素的和是否也是素數。
因此,如果輸入類似於nums = [1,2,4,5,3,3],則輸出將為True,因為所有素數的和為(2+5+3+3) = 13,而13也是素數。
為了解決這個問題,我們將遵循以下步驟:
- MAX := 10000
- sieve := 一個大小為MAX的列表,並填充true
- 定義一個函式generate_list_of_primes()
- sieve[0] := False, sieve[1] := False
- 對於範圍從2到MAX - 1的i,執行:
- 如果sieve[i]為true,則
- 對於範圍從2*i到MAX,步長為i的j:
- sieve[j] := False
- 對於範圍從2*i到MAX,步長為i的j:
- 如果sieve[i]為true,則
- 在主方法中執行以下操作:
- generate_list_of_primes()
- total := 0
- 對於範圍從0到arr大小-1的i,執行:
- 如果sieve[arr[i]]為true,則
- total := total + arr[i]
- 如果sieve[arr[i]]為true,則
- 如果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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP