ニューマン-シャンクス-ウィリアムズはC++で素数
ニューマン-シャンクス-ウィリアムズプライムシーケンスは次のとおりです
1、1、3、7、17、41 ...
シーケンス項目を一般化すると、次のようになります
a0=1 a1=1 an=2*a(n-1)+a(n-2)
アルゴリズム
- 番号nを初期化します。
- シーケンス1と1の最初の番号を初期化します。
- nまで繰り返すループを作成します。
- 前の数値を使用して次の数値を計算します。
- 前の2つの番号を更新します。
- 最後の番号を返します。
実装
以下は、C++での上記のアルゴリズムの実装です
#include <bits/stdc++.h> using namespace std; int getNthTerm(int n) { if(n == 0 || n == 1) { return 1; } int a = 1, b = 1; for(int i = 3; i <= n; ++i) { int c = 2 * b + a; a = b; b = c; } return b; } int main() { int n = 5; cout << getNthTerm(n) << endl; return 0; }
出力
上記のコードを実行すると、次の結果が得られます。
17
-
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 このため、素数を生成し、配列に
-
数値がC++でフルプライムであるかどうかを確認します
ここでは、数値が完全素数であるかどうかを確認する方法を説明します。数が素数であり、そのすべての桁も素数である場合、その数は完全な素数であると言われます。数が37であるとすると、これは完全な素数です。しかし、9は素数ではないため、97は完全な素数ではありません。 効率的なアプローチの1つはそれです。まず、素数ではない数字が存在するかどうかを確認する必要があります。数字は0から9でなければなりません。その範囲では、2、3、5、および7が素数であり、その他は素数ではありません。すべてが素数の場合は、その数が素数であるかどうかを確認します。 例 #include <iostream> u