बैलेंस्ड प्राइम संख्या एक अभाज्य संख्या है जिसका पिछली और अगली अभाज्य संख्याओं के लिए समान अंतर है। यानी यह निकटतम अगले अभाज्य और पिछले अभाज्य का माध्य है।
एक अभाज्य संख्या के संतुलित अभाज्य होने के लिए, उसे निम्न सूत्र का पालन करना चाहिए -
पी<उप>एनउप> =(पी(एन-1) + पी(एन+1)) / 2
जहाँ n एक अभाज्य संख्या के क्रमित सेट में अभाज्य संख्या pn का सूचकांक है।
अभाज्य संख्याओं का क्रमित सेट:2, 3, 5, 7, 11, 13,….
सबसे पहले, संतुलित अभाज्य संख्याएँ हैं 5, 53, 157, 173, …
इस समस्या में, हमें एक संख्या n दी गई है और हमें एक nवीं संतुलित अभाज्य संख्या ज्ञात करनी है।
आइए एक उदाहरण लेते हैं,
Input : n = 3 Output : 157
इसके लिए अभाज्य संख्याएँ उत्पन्न करेंगे और इसे एक सरणी में संग्रहीत करेंगे। हम देखेंगे कि अभाज्य संख्या संतुलित अभाज्य है या नहीं। अगर यह गिनती बढ़ाता है और अगर गिनती n के बराबर है, तो इसे प्रिंट करें।
उदाहरण
#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; }
आउटपुट
157