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

Balanced Prime trong C ++

Số nguyên tố cân bằng number là một số nguyên tố có cùng hiệu số đối với các số nguyên tố trước và sau của nó. tức là nó là giá trị trung bình của số nguyên tố tiếp theo và số nguyên tố trước đó gần nhất.

Để một số nguyên tố là một số nguyên tố cân bằng, nó phải tuân theo công thức sau -

P n =(P (n-1) + P (n + 1)) / 2

Trong đó n là chỉ số của số nguyên tố pn trong tập hợp số nguyên tố có thứ tự.

Tập hợp các số nguyên tố có thứ tự:2, 3, 5, 7, 11, 13,….

Đầu tiên, các số nguyên tố cân bằng là 5, 53, 157, 173,…

Trong bài toán này, chúng ta được cho một số n và chúng ta phải tìm một số nguyên tố cân bằng thứ n.

Hãy lấy một ví dụ,

Input : n = 3
Output : 157

Đối với điều này sẽ tạo ra các số nguyên tố và lưu trữ nó trong một mảng. Chúng ta sẽ tìm xem số nguyên tố có phải là số nguyên tố cân bằng hay không. Nếu nó tăng số lượng và nếu số lượng bằng n, hãy in nó.

Ví dụ

#include<bits/stdc++.h>
#define MAX 501
using namespace std;
int balancedprimenumber(int n){
   bool prime[MAX+1];
   memset(prime, true, sizeof(prime));
   for (int p = 2; p*p <= MAX; p++){
      if (prime[p] == true)
      {
         for (int i = p*2; i <= MAX; i += p)
         prime[i] = false;
      }
   }
   vector<int> v;
   for (int p = 3; p <= MAX; p += 2)
   if (prime[p])
   v.push_back(p);
   int count = 0;
   for (int i = 1; i < v.size(); i++){
      if (v[i] == (v[i+1] + v[i - 1])/2)
      count++;
      if (count == n)
      return v[i];
   }
}
int main(){
   int n = 3;
   cout<<balancedprimenumber(n)<<endl;
   return 0;
}

Đầu ra

157