Python程式:檢查n能否表示為k個素數之和
假設我們有一個數字n和另一個數字k。我們必須檢查n是否可以表示為k個素數之和。
因此,如果輸入為n = 30,k = 3,則輸出為True,因為30可以表示為2 + 11 + 17。
為了解決這個問題,我們將遵循以下步驟:
- 如果n < k*2,則
- 返回False
- 如果k > 2,則
- 返回True
- 如果k等於2,則
- 如果n是偶數,則
- 返回True
- 如果(n-2)是素數,則
- 返回True
- 返回False
- 如果n是偶數,則
- 如果n是素數,則
- 返回True
- 返回False
示例
讓我們看下面的實現以更好地理解:
def isPrime(num):
if num > 1:
for i in range(2, num):
if num % i == 0:
return False
return True
return False
def solve(n, k):
if n < k*2:
return False
if k > 2:
return True
if k == 2:
if n%2 == 0:
return True
if isPrime(n-2):
return True
return False
if isPrime(n):
return True
return False
n = 30
k = 3
print(solve(n, k))輸入
30, 3
輸出
True
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP