在 C++ 程序中找到具有给定乘积的两个不同质数

在本教程中,我们将编写一个程序,用给定的乘积找出两个不同的素数。让我们看一些例子。

输入- 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

结论

如果您对本教程有任何疑问,请在评论部分提及。

以上是 在 C++ 程序中找到具有给定乘积的两个不同质数 的全部内容, 来源链接: utcz.com/z/358598.html

回到顶部