C++でN未満のすべての安全な素数を印刷します
この問題では、整数Nが与えられ、すべての安全素数を出力する必要があります。 値がN未満です。
安全素数 は[(2 * p)-1]として表すことができる素数です。ここで、pは素数でもあります。
例 − 5 [(2 * 2)+1]、7 [(2 * 3)+1]。
問題をよりよく理解するためにいくつかの例を見てみましょう-
Input: N = 12 Output: 5 7 11.
この問題を解決するために、N未満のすべての素数を見つけます(このために、エラトステネスのふるいを使用します)。そして、素数が安全素数であるかどうかを確認し、それが安全素数であるかどうかを印刷します。
例
#include <bits/stdc++.h> using namespace std; void printPrime(int n){ cout<<n<<"\t"; } void generateSafePrimes(int n){ int prime[n + 1]; for (int i = 2; i <= n; i++) prime[i] = 1; prime[0] = prime[1] = 0; for (int p = 2; p * p <= n; p++) { if (prime[p] == 1) { for (int i = p * 2; i <= n; i += p) prime[i] = 0; } } for (int i = 2; i <= n; i++) { if (prime[i] != 0) { int temp = (2 * i) + 1; if (temp <= n && prime[temp] != 0) prime[temp] = 2; } } for (int i = 5; i <= n; i++) if (prime[i] == 2) printPrime(i); } // Driver code int main(){ int n = 34; cout<<"safe Prime numbers less than "<<n<<" are :\n"; generateSafePrimes(n); return 0; }
出力
34未満の安全素数は-
5 7 11 23
-
C++で特定のノードから距離kにあるすべてのノードを出力します
この問題では、二分木、ターゲットノード、整数Kが与えられます。ターゲットノードから距離Kにあるツリーのすべてのノードを印刷する必要があります。 。 二分木 は、各ノードに最大2つのノード(1つまたは2つ/なし)を持つ特別なツリーです。 問題を理解するために例を見てみましょう K =2 ターゲットノード:9 出力 − 5 1 3. 説明 − 距離は、ノードの上位、下位、または同じレベルで取得できます。したがって、それに応じてノードを返します。 この問題を解決するには、ターゲットノードからK距離離れたノードのタイプを理解する必要があります。 上記の試験から、k個の離
-
C++でKの葉を持つ二分木のすべてのノードを印刷します
この問題では、二分木と整数Kが与えられ、子サブツリーにKの葉を持つ二分木のすべてのノードを出力する必要があります。 二分木 は、各ノードに最大2つのノード(1つまたは2つ/なし)を持つ特別なツリーです。 リーフノード 二分木のは、ツリーの最後にあるノードです。 問題を理解するために例を見てみましょう- K =2 出力- {S} この問題を解決するために、ツリーのトラバーサル(ポストオーダー)を実行します。ここで、葉の合計がKの場合、左側のサブツリーと右側のサブツリーがそれぞれ表示されます。現在のノードを出力します。 それ以外の場合は再帰的に呼び出し、サブツリーの葉がカ