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

C++の平衡素数


平衡素数 numberは、前の素数と次の素数で同じ差がある素数です。つまり、最も近い次の素数と前の素数の平均です。

素数が平衡素数になるには、次の式に従う必要があります-

P n =(P(n-1)+ P(n + 1))/ 2

ここで、nは、順序付けられた素数のセット内の素数pnのインデックスです。

素数の順序集合:2、3、5、7、11、13、…。

まず、平衡素数は5、53、157、173、…

この問題では、数nが与えられ、n番目の平衡素数を見つける必要があります。

例を見てみましょう

Input : n = 3
Output : 157

このため、素数を生成し、配列に格納します。素数が平衡素数であるかどうかを調べます。カウントが増え、カウントがnに等しい場合は、印刷します。

#include<bits/stdc++.h>
#define MAX 501
using namespace std;
int balancedprimenumber(int n){
   bool prime[MAX+1];
   memset(prime, true, sizeof(prime));
   for (int p = 2; p*p <= MAX; p++){
      if (prime[p] == true)
      {
         for (int i = p*2; i <= MAX; i += p)
         prime[i] = false;
      }
   }
   vector<int> v;
   for (int p = 3; p <= MAX; p += 2)
   if (prime[p])
   v.push_back(p);
   int count = 0;
   for (int i = 1; i < v.size(); i++){
      if (v[i] == (v[i+1] + v[i - 1])/2)
      count++;
      if (count == n)
      return v[i];
   }
}
int main(){
   int n = 3;
   cout<<balancedprimenumber(n)<<endl;
   return 0;
}

出力

157

  1. C++のメルセンヌ素数。

    説明 数学では、メルセンヌ素数は2の累乗より1少ない素数です。つまり、ある整数nに対してMn =2n −1の形式の素数です。 入力された正の整数nよりも小さいすべてのメルセンヌ素数を出力するC++プログラムを記述します。 メルセンヌ素数を与える指数nは2、3、5、7、...であり、結果のメルセンヌ素数は3、7、31、127です。 アルゴリズム 1. Generate all the primes less than or equal to the given number n 2. Iterate through all numbers of the form 2n-1 and chec

  2. 数値がC++でフルプライムであるかどうかを確認します

    ここでは、数値が完全素数であるかどうかを確認する方法を説明します。数が素数であり、そのすべての桁も素数である場合、その数は完全な素数であると言われます。数が37であるとすると、これは完全な素数です。しかし、9は素数ではないため、97は完全な素数ではありません。 効率的なアプローチの1つはそれです。まず、素数ではない数字が存在するかどうかを確認する必要があります。数字は0から9でなければなりません。その範囲では、2、3、5、および7が素数であり、その他は素数ではありません。すべてが素数の場合は、その数が素数であるかどうかを確認します。 例 #include <iostream> u