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

সি++-এ দেওয়া সংখ্যা থেকে বড় পরবর্তী প্রাইম প্যালিনড্রোম বের করা

একটি সংখ্যা N দেওয়া থাকলে, N চেয়ে বড় সবচেয়ে ছোট প্রাইম প্যালিনড্রোম সংখ্যা বের করতে হবে।

উদাহরণ

ইনপুট: N = 10 → আউটপুট: 11

ইনপুট: N = 15 → আউটপুট: 17

অ্যালগরিদম

  • N ইনিশিয়ালাইজ করুন।
  • isPrime() ফাংশন লিখুন (√n পর্যন্ত চেক)।
  • isPalindrome() ফাংশন লিখুন (রিভার্স করে মিলান)।
  • N+1 থেকে শুরু করে লুপ চালান।
  • প্রথম প্রাইম প্যালিনড্রোম পাওয়া গেলে ফেরত দিন।

সি++ ইমপ্লিমেন্টেশন

#include <bits/stdc++.h>
using namespace std;

bool isPrime(int n) {
    if (n < 2) return false;
    for (int i = 2; i * i <= n; i++) if (n % i == 0) return false;
    return true;
}

bool isPalindrome(int n) {
    int rev = 0, orig = n;
    while (n) { rev = rev * 10 + n % 10; n /= 10; }
    return orig == rev;
}

int getNextPrimePalindrome(int n) {
    for (int i = n + 1; ; i++) {
        if (isPrime(i) && isPalindrome(i)) return i;
    }
}

int main() {
    int N = 15;
    cout << getNextPrimePalindrome(N) << endl; // 17
    return 0;
}

আউটপুট

17
  1. সি++-এ স্মলেস্ট রেঞ্জ II (Smallest Range II)

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

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

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