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

Bộ ba số nguyên tố trong C ++

Trong bài toán này, chúng ta được cho một số N. Nhiệm vụ của chúng ta là in ra tất cả các bộ ba số nguyên tố nhỏ hơn N.

Bộ ba nguyên tố là một bộ ba số nguyên tố. Đó có dạng (p, p + 2, p + 6) hoặc (p, p + 4, p + 6). Tất cả các số nguyên tố được nhóm theo bộ ba ở trên vì mọi số nguyên tố thứ ba trong mẫu trực tiếp là bội của 6.

Hãy xem một ví dụ để hiểu vấn đề

Input: N = 13
Output: 5 7 11

Để giải quyết vấn đề này, chúng ta phải tìm tất cả các số nguyên tố nhỏ hơn N. và kiểm tra các bộ ba.

Mã để hiển thị việc triển khai giải pháp của chúng tôi,

Ví dụ

#include <bits/stdc++.h>
using namespace std;
void findPrimes(int n, bool prime[]) {
   for (int p = 2; p * p <= n; p++) {
      if (prime[p] == true) {
         for (int i = p * 2; i <= n; i += p)
         prime[i] = false;
      }
   }
}
void printPrimeTriplets(int n) {
   bool prime[n + 1];
   memset(prime, true, sizeof(prime));
   findPrimes(n, prime);
   for (int i = 2; i <= n-6; ++i) {
      if (prime[i] && prime[i + 2] && prime[i + 6])
         cout<<i<<"\t"<<(i+2)<<"\t"<<(i+6)<<endl;
      else if (prime[i] && prime[i + 4] && prime[i + 6])
         cout<<i <<"\t"<<(i + 4)<<"\t"<<(i + 6)<<endl;
   }
}
int main() {
   int N = 15;
   cout<<"Prime Triplets Less than "<<N<<" are :\n";
   printPrimeTriplets(N);
   return 0;
}

Đầu ra

Prime Triplets Less than 15 are :
5   7   11
7   11   13