C++ 中求和等於給定 N 的最大素數


在這個問題中,我們給定一個數字 n。我們的任務是找到素數的最大數量,其和等於給定的 N。

在這裡,我們將找到當相加時等於該數字的最大素數數量。

素數是可以被自身或 1 整除的數字。

讓我們舉個例子來理解這個問題 -

輸入 - N = 9

輸出 - 4

解釋 -

9 can be repressed as the sum of prime numbers in the following ways:
2, 2, 2, 3
3, 3, 3
2, 2, 5
2, 7
Out of these the maximum number of primes used is 4.

使用的素數的最大數量將基於可以相加得到該和的最小素數的數量。

因此,最小的素數是 2。而接下來更大的素數是 3,它是奇數。

因此,如果我們在計算總和時僅使用 2 和 3,則計數將達到最大值。基於此,我們可以將問題分為兩種情況 -

情況 1 - 如果 N 是偶數,則總和中的所有素數都將是 2。因此,計數將為 n/2。

情況 2 - 如果 N 是奇數,則總和中的所有素數都將是 2,除了一個將是 3。因此,計數將為 (n-1/2)。

示例

C++ 中求和等於給定 N 的最大素數的程式

 即時演示

#include <iostream>
using namespace std;
int maxPrimeCount(int n){
   //For odd case the result will same as (n-1)/2
   return n / 2;
}
int main(){
   int n = 9;
   cout<<"The maximum number of primes whose sum is equal to "<<n<<" is "<<maxPrimeCount(n);
   return 0;
}

輸出

The maximum number of primes whose sum is equal to 9 is 4

更新於: 2020-06-03

123 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.