C++のプライムトリプレット
この問題では、数Nが与えられます。私たちのタスクは、N未満のすべての素数三つ子素数を印刷することです。
三つ子素数 3つの素数のセットです。これは、(p、p + 2、p + 6)または(p、p + 4、p + 6)の形式です。直接パターンの3つおきの素数は6の倍数であるため、すべての素数は上記のトリプレットに従ってグループ化されます。
問題を理解するための例を見てみましょう
Input: N = 13 Output: 5 7 11
この問題を解決するには、N以下のすべての素数を見つける必要があります。そしてトリプレットをチェックします。
ソリューションの実装を示すコード
例
#include <bits/stdc++.h> using namespace std; void findPrimes(int n, bool prime[]) { for (int p = 2; p * p <= n; p++) { if (prime[p] == true) { for (int i = p * 2; i <= n; i += p) prime[i] = false; } } } void printPrimeTriplets(int n) { bool prime[n + 1]; memset(prime, true, sizeof(prime)); findPrimes(n, prime); for (int i = 2; i <= n-6; ++i) { if (prime[i] && prime[i + 2] && prime[i + 6]) cout<<i<<"\t"<<(i+2)<<"\t"<<(i+6)<<endl; else if (prime[i] && prime[i + 4] && prime[i + 6]) cout<<i <<"\t"<<(i + 4)<<"\t"<<(i + 6)<<endl; } } int main() { int N = 15; cout<<"Prime Triplets Less than "<<N<<" are :\n"; printPrimeTriplets(N); return 0; }
出力
Prime Triplets Less than 15 are : 5 7 11 7 11 13
-
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