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

C++で同じパリティ素数の合計として表すことができるカウント数


サイズNの正の整数の配列Arr[]が与えられます。目標は、パリティ素数の合計として表すことができる、つまり同じ素数の合計として表すことができる、その配列内の要素の数を数えることです。番号。元; 4 =2 + 2、6 =3+3または2+2 + 2

2つの奇数または偶数の素数の合計は常に偶数になります。また、0と2を除いて、すべての偶数は同じ素数の合計として表すことができます。

例を挙げて理解しましょう。

入力

Arr[] = { 2, 5, 10, 15, 20, 25 }

出力

Number which satisfy condition : 3

説明

Numbers as sum of same primes:
Arr[0] = 2 X count=0
Arr[1] = 5 : X count=0
Arr[2] = 10 :5+5 count=1
Arr[3] = 15 : X count=1
Arr[4] = 20 : 5+5+5+5 count=2
Arr[5] = 25 : X count=2

入力

Arr[] = { 0, 2, 4, 11, 13}

出力

Number which satisfy condition : 1

説明

Numbers as sum of same primes:
Arr[0] = 0 : X count=0
Arr[1] = 2 : X count=0
Arr[2] = 4 : 2+2 count=1
Arr[3] = 11 : X count=1
Arr[4] = 13 : X count=1

以下のプログラムで使用されているアプローチは次のとおりです

  • 長さNの正の整数の配列を取ります。

  • 関数sumofparityPrimes(int arr []、int n)は、配列とnを入力として受け取り、パリティ素数の合計として表すことができる要素の数を返します。

  • そのような数の場合、初期変数カウントを0とします。

  • forループを使用して配列をトラバースします。

  • 要素ごとに偶数の場合(arr [i]%2 ==0)。

  • 次に、0でも2でもないことを確認します。真の増分カウントの場合。

  • forループの最後に結果としてカウントを返します。

#include <bits/stdc++.h>
using namespace std;
int sumofparityPrimes(int arr[],int n){
   int count = 0;
   for(int i=0;i<n;i++){
      if(arr[i]%2==0) //num is even only{
         if(arr[i]!=0){
            if(arr[i]!=2)
               { count++; } //neither 0 nor 2
         }
      }
   }
   return count;
}
int main(){
   int Arr[]={ 12, 5 , 15, 8, 100, 40 };
   int Length= sizeof(Arr)/sizeof(Arr[0]);
   cout <<endl<< "Number which satisfy condition : "<<sumofparityPrimes(Arr,Length);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Number which satisfy condition : 4

  1. 数値がC++で2つの豊富な数値の合計として表現できるかどうかを確認します

    番号があるとします。これを2つの過剰数の合計として表す必要があります。はいの場合は数値を出力し、そうでない場合は-1を出力します。数は過剰数と呼ばれ、その数のすべての適切な除数の合計であり、sum(n)は数の値よりも大きいことで示されます。 これを解決するために、すべての過剰数をセットに格納し、指定された数nに対して、i =1からnのループを実行し、nと(n – i)が過剰かどうかを確認します。 例 #include <iostream> #include <set> #define N 100005 using namespace std; set<int&g

  2. 数値がC++で2つの三角数の合計として表現できるかどうかを確認します

    このセクションでは、1つの数を2つの三角数の合計として表現できるかどうかを確認します。三角数は以下のようになります- 例から、1、3、6、10はいくつかの三角数であることがわかります。数N(たとえば16)を2つの三角数(6、10)の合計として表す必要があります。 アプローチは非常に簡単です。 N未満のすべての三角数を取得する必要があります。これらの値からセットを作成します。ここで、集合からXと言う数を取り、N – Xが集合に存在するかどうかを確認する必要があります。そうすると、Xは2つの三角数の合計として表すことができます。 例 #include <iostream> #