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