কম্পিউটার টিউটোরিয়াল

সি++-এ প্রাইম প্যালিনড্রোম (Prime Palindrome)


মান লেযিয়ে N-এর চেয়ে বড় বা সমান সবচেয়ে ছোট প্রাইম প্যালিনড্রোম খুঁজে বের করতে হবে। N = 13 হলে সবচেয়ে ছোট প্যালিনড্রোম ১০১।

এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব -

  • যদি N ৮ থেকে ১১-এর মধ্যে থাকে, ১১ রিটার্ন করুন

  • i = 1 থেকে ৯৯৯৯৯ পর্যন্ত লুপ চালান

    • s := i স্ট্রিং হিসেবে

    • r := s

    • r রিভার্স করুন

    • num := s + r.substr(1) ক্যাটেনেট করে নম্বারে কনভার্ট করুন

    • যদি num >= N এবং num প্রাইম হয়, num রিটার্ন করুন

  • 0 রিটার্ন করুন

নিচের বাস্তবায়নটি দেখে আরও ভালো বুঝতে পারবেন -

উদাহরণ

#include <bits/stdc++.h> using namespace std; class Solution {    public:    bool isPrime(int n){       if(n % 2 == 0 && n > 2) return false;       for(int i = 3; i * i <= n; i++){          if(n % i == 0) return false;       }       return n != 1 && n != 0;    }    int primePalindrome(int N) {       if(8 <= N && N <= 11) return 11;       for(int i = 1; i < 100000; i++){          string s = to_string(i);          string r = s;          reverse(r.begin(), r.end());          int num = stoi(s + r.substr(1));          if(num >= N && isPrime(num)) return num;       }       return 0;    } }; main(){    Solution ob;    cout << (ob.primePalindrome(105)); }

ইনপুট

105

আউটপুট

131

  1. C++-এ প্রাইম স্ট্রিং (ASCII ভ্যালু যোগফল প্রাইম কিনা)

  2. C++-এ প্রাইম ট্রিপলেট

  3. C++-এ প্যালিনড্রোম পার্টিশনিং (মিনিমাম কাট)

  4. ব্যালেন্সড প্রাইম C++-এ