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

C++ですべての乗法素数<=Nを出力します


この問題では、整数nが与えられ、n以下のすべての乗法素数を出力する必要があります。

乗法素数 数字と素数の積を持つ素数です。 2、3、5、7、13、17のように。

23は素数ですが、2 * 3 =6であるため、乗法素数ではありません。

問題を理解するために例を見てみましょう-

Input: n = 9
Output: 2 3 5 7

この問題を解決するために、n未満のすべての素数を見つけます。そして、その数が乗法素数であるかどうかを確認します 。そして、n未満のすべての乗法素数を出力します。

プログラムは問題の解決策を示しています

#include <bits/stdc++.h>
using namespace std;
int digitMultiply(int n) {
   int prod = 1;
   while (n) {
      prod = prod * (n % 10);
      n = n / 10;
   }
   return prod;
}
void generateMprime(int n) {
   bool prime[n + 1];
   memset(prime, true, sizeof(prime));
   prime[0] = prime[1] = false;
   for (int p = 2; p * p <= n; p++) {
      if (prime[p]) {
         for (int i = p * 2; i <= n; i += p)
            prime[i] = false;
      }
   }
   for (int i = 2; i <= n; i++) {
      if (prime[i] && prime[digitMultiply(i)])
         cout<<i<<"\t";
   }
}
int main() {
   int n = 10;
   cout<<"All multiplicative Prime Numbers =< "<<n<<" are :\n";
   generateMprime(n);
}
出力
All multiplicative Prime Numbers =< 10 are −
2 3 5 7

  1. C++で特定のノードから距離kにあるすべてのノードを出力します

    この問題では、二分木、ターゲットノード、整数Kが与えられます。ターゲットノードから距離Kにあるツリーのすべてのノードを印刷する必要があります。 。 二分木 は、各ノードに最大2つのノード(1つまたは2つ/なし)を持つ特別なツリーです。 問題を理解するために例を見てみましょう K =2 ターゲットノード:9 出力 − 5 1 3. 説明 − 距離は、ノードの上位、下位、または同じレベルで取得できます。したがって、それに応じてノードを返します。 この問題を解決するには、ターゲットノードからK距離離れたノードのタイプを理解する必要があります。 上記の試験から、k個の離

  2. C++でKの葉を持つ二分木のすべてのノードを印刷します

    この問題では、二分木と整数Kが与えられ、子サブツリーにKの葉を持つ二分木のすべてのノードを出力する必要があります。 二分木 は、各ノードに最大2つのノード(1つまたは2つ/なし)を持つ特別なツリーです。 リーフノード 二分木のは、ツリーの最後にあるノードです。 問題を理解するために例を見てみましょう- K =2 出力- {S} この問題を解決するために、ツリーのトラバーサル(ポストオーダー)を実行します。ここで、葉の合計がKの場合、左側のサブツリーと右側のサブツリーがそれぞれ表示されます。現在のノードを出力します。 それ以外の場合は再帰的に呼び出し、サブツリーの葉がカ