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 Chương trình C ++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm hai số nguyên tố phân biệt với tích đã cho. Hãy xem một số ví dụ.

Đầu vào - 21

Đầu ra - 3 7

Ở đây, chúng ta cần có tất cả các số nguyên tố nhỏ hơn tích đã cho. Khi đã có những số nguyên tố đó, chúng ta có thể dễ dàng tìm ra cặp số. Làm theo các bước dưới đây để giải quyết vấn đề.

  • Khởi tạo một sản phẩm và một mảng boolean để lưu trữ liệu một số trong phạm vi có phải là số nguyên tố hay không.

  • Tìm tất cả các số nguyên tố nhỏ hơn tích đã cho và lưu trữ chúng trong một mảng.

  • Lặp lại cho đến khi sản phẩm nhất định.

    • Nếu số hiện tại là số nguyên tố và n / current_number cũng là số nguyên tố, thì hãy kiểm tra xem chúng có khác biệt hay không.

    • Nếu chúng khác nhau, hãy in chúng.

Ví dụ

Hãy xem mã.

#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;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

3 7

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.