Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm hai số nguyên tố phân biệt có tích đã cho trong C ++


Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình tìm hai số nguyên tố phân biệt với tích đã cho.

Đối với điều này, chúng tôi sẽ được cung cấp một giá trị số nguyên. Nhiệm vụ của chúng ta là tìm hai giá trị nguyên nguyên tố sao cho tích của chúng bằng giá trị đã cho.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
//generating prime numbers less than N.
void findingPrimeNumbers(int n, bool calcPrime[]) {
   calcPrime[0] = calcPrime[1] = false;
   for (int i = 2; i <= n; i++)
      calcPrime[i] = true;
   for (int p = 2; p * p <= n; p++) {
      if (calcPrime[p] == true) {
         for (int i = p * 2; i <= n; i += p)
            calcPrime[i] = false;
      }
   }
}
//printing the valid prime pair
void calcPairPrime(int n) {
   int flag = 0;
   bool calcPrime[n + 1];
   findingPrimeNumbers(n, calcPrime);
   for (int i = 2; i < n; i++) {
      int x = n / i;
      if (calcPrime[i] && calcPrime[x] and x != i and x * i == n) {
         cout << i << " " << x;
         flag = 1;
         return;
      }
   }
   if (!flag)
      cout << "No prime pair exist";
}
int main() {
   int n = 24;
   calcPairPrime(n);
   return 0;
}

Đầu ra

No prime pair exist