C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

合計が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のみを使用すると、カウントが最大になります。これに基づいて、2つのケースで問題を分割できます-

ケース1 − Nが偶数の場合、合計のすべての素数は2になります。したがって、カウントはn/2になります。

ケース2 − Nが奇数の場合、合計のすべての素数は2になりますが、1は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

  1. 合計がC++の指定された値xに等しい2つのBSTからペアをカウントします

    入力として2つの二分探索木と変数xが与えられます。目標は、ノードの値の合計がxに等しくなるように、各ツリーからノードのペアを見つけることです。 BST_1からノード1を取得し、BST_2からノード2を取得して、両方のデータ部分を追加します。 sum=xの場合。インクリメントカウント。 例を挙げて理解しましょう。 入力 出力 −合計が特定の値xに等しい2つのBSTからのペアの数は− 1 説明 −ペアは(8,6) 入力 出力 −合計が特定の値xに等しい2つのBSTからのペアの数は− 2 説明 −ペアは(5,15)と(4,16) 以下のプログラムで使用されているアプ

  2. 指定された数値の桁を合計するC++プログラム

    これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {       s = s + x % 10;       x = x / 10;