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

C++プログラムで特定の製品の2つの異なる素数を見つけます


このチュートリアルでは、与えられた積で2つの異なる素数を見つけるプログラムを作成します。いくつかの例を見てみましょう。

入力 − 21

出力 − 3 7

ここでは、与えられた積よりも小さいすべての素数を持っている必要があります。これらの素数を取得すると、ペアを簡単に見つけることができます。以下の手順に従って問題を解決してください。

  • 積とブール配列を初期化して、範囲内の数値が素数であるかどうかを格納します。

  • 指定された製品よりも小さいすべての素数を見つけて、配列に格納します。

  • 与えられた製品まで繰り返します。

    • 現在の数が素数であり、n / current_numberも素数である場合は、それらが異なるかどうかを確認します。

    • 区別できる場合は、印刷してください。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
bool primes(int n, bool primeStatus[]) {
   primeStatus[0] = primeStatus[1] = false;
   for (int i = 2; i <= n; i++) {
      primeStatus[i] = true;
   }
   for (int i = 2; i * i <= n; i++) {
      if (primeStatus[i] == true) {
         for (int j = i * 2; j <= n; j += i)
            primeStatus[j] = false;
      }
   }
}
int main() {
   int n = 21;
   bool primeStatus[n + 1], pairsFound = false;
   primes(n, primeStatus);
   for (int i = 2; i < n; i++) {
      int pair = n / i;
      if (primeStatus[i] && primeStatus[pair] && pair != i && pair * i == n) {
         cout << i << " " << pair << endl;
         pairsFound = true;
         break;
      }
   }
   if (!pairsFound){
      cout << "No pairs";
   }
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

3 7

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++の配列内のすべての素数の積

    いくつかの要素を持つ整数配列arr[]が与えられた場合、タスクはその数のすべての素数の積を見つけることです。 素数は、1で割った数、またはその数自体です。または、素数は、1とその数自体を除いて他の数で割り切れない数です。 1、2、3、5、7、11など 与えられた配列の解を見つける必要があります- 入力 −arr [] ={11、20、31、4、5、6、70} 出力 − 1705 説明 −配列の素数は− 11、31、5であり、それらの積は1705 入力 − arr [] ={1、2、3、4、5、6、7} 出力 − 210 説明 −配列の素数は− 1、2、3、5、7

  2. 2つの数値を乗算するC++プログラム

    2つの数値aとbを乗算すると、それらの積が得られます。 aの値はbの値の何倍にも加算され、aとbの積が得られます。 たとえば。 5 * 4 = 20 7 * 8 = 56 9 * 9 = 81 *演算子を使用して2つの数値を乗算するプログラム *演算子を使用して2つの数値を乗算するプログラムは、次のとおりです。- 例 #include <iostream> using namespace std; int main() {    int a = 6, b = 8;    cout<<"Product of "