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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP