Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ में अगला पैलिंड्रोम प्राइम खोजें


इस समस्या में, हमें एक तत्व N दिया जाता है। हमें अगला पैलिंड्रोम प्राइम ढूंढना होगा।

समस्या का विवरण - हमें सबसे छोटी अभाज्य संख्या ज्ञात करनी होगी जो कि एक पैलिंड्रोम संख्या भी हो, जो N से बड़ी हो।

पैलिंड्रोम संख्या एक संख्या है जिसमें दोनों दिशाओं में संख्याएं समान होती हैं।

अभाज्य संख्या एक संख्या है यदि इसके केवल गुणनखंड 1 और स्वयं हैं।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

N = 12

आउटपुट

101

स्पष्टीकरण

12 से बड़े पैलिंड्रोम की श्रृंखला 22, 33, 44, 55, 66, 77, 88, 99,101… इनमें से सबसे छोटा पैलिंड्रोम 101 है।

समाधान दृष्टिकोण

समस्या का एक सरल समाधान एन से बड़े सभी पैलिंड्रोम को खोजना है जो कि अभाज्य हैं।

एक अधिक कुशल समाधान है, सम अंक वाले पैलिंड्रोम का पता लगाना जो 11 का गुणक है।

यहाँ इस समाधान का प्रमाण दिया गया है,

11% 11 = 0
1111% 11 = 0

इसका उपयोग करके हम सम अंकों के साथ पैलिंड्रोम पाएंगे -

xyzzyx % 11 =0, जो सभी सम संख्या अंकों को पैलिंड्रोम नहीं बनाता है।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include <iostream>
#include <string>
using namespace std;
bool isPrime(int num) {
   if (num < 2 || num % 2 == 0)
      return num == 2;
   for (int i = 3; i * i <= num; i += 2)
      if (num % i == 0)
         return false;
   return true;
}
int primePalindrome(int N) {
   if (8 <= N && N <= 11)
      return 11;
   for (int x = 1; x < 100000; ++x) {
      string s = to_string(x), r(s.rbegin(), s.rend());
      int y = stoi(s + r.substr(1));
      if (y >= N && isPrime(y))
         return y;
   }
   return -1;
}
int main() {
   int N = 432;
   cout<<"The next prime palindrome is "<<findNextPrimePallindrome(432);
   return 0;
}

आउटपुट

The next number with same set of digits is 92543

  1. सी++ में अगला विरल नंबर खोजें

    इस समस्या में, हमें एक पूर्णांक मान N दिया जाता है। हमारा कार्य अगले पुर्जों की संख्या खोजने के लिए एक प्रोग्राम बनाना है। विरल संख्या एक विशेष प्रकार की संख्या है जिसके बाइनरी रूपांतरण में कोई सन्निकट 1 नहीं है। Example: 5(101) , 16(10000) समस्या का विवरण - दी गई संख्या N के लिए, हमें N से बड़ी स

  1. सी ++ में एक सरणी में अगले ग्रेटर का अगला छोटा खोजें

    इस समस्या में, हमें n पूर्णांक मानों से युक्त एक सरणी arr[] दिया जाता है। हमारा काम अगले ग्रेटर के अगले छोटे को एक सरणी में खोजना है। समस्या का विवरण - हम सरणी में वर्तमान तत्व से बड़ा तत्व पाएंगे और फिर हम सरणी में उस तत्व को ढूंढेंगे जो इस बड़े तत्व से छोटा है। और यदि कोई अगला छोटा या अगला बड़ा त

  1. C++ में दी गई कुंजी का अगला दायां नोड खोजें

    इस समस्या में, हमें एक बाइनरी ट्री बीटी और एक प्रमुख मूल्य दिया जाता है। हमारा काम किसी दिए गए कुंजी का अगला दायां नोड ढूंढना है। बाइनरी ट्री एक विशेष डेटा संरचना है जिसका उपयोग डेटा संग्रहण उद्देश्यों के लिए किया जाता है। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट key = 4 आउटपुट 5 स्पष्ट