Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

palindrome ไพรม์ที่เล็กที่สุดตัวถัดไปใน C++


เราได้ตัวเลข N เราต้องหาพาลินโดรมเฉพาะที่มากกว่า N มาดูตัวอย่างกัน

ป้อนข้อมูล

N = 10

ผลผลิต

11

อัลกอริทึม

  • เริ่มต้นหมายเลข N.

  • เขียนฟังก์ชันเพื่อตรวจสอบว่าจำนวนที่กำหนดเป็นจำนวนเฉพาะหรือไม่

  • เขียนฟังก์ชันตรวจสอบว่าตัวเลขที่กำหนดเป็นพาลินโดรมหรือไม่

  • เขียนลูปที่วนซ้ำจาก N + 1 จนกว่าคุณจะพบพาลินโดรมที่สำคัญต่อไป

    • ตรวจสอบว่าตัวเลขเป็นจำนวนเฉพาะและพาลินโดรมหรือไม่
    • ถ้าเป็นจำนวนเฉพาะและพาลินโดรม
    • คืนหมายเลข

การนำไปใช้

ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน C++

#include<bits/stdc++.h>
using namespace std;
bool isPrime(int n) {
   if (n < 2) return false;
   for (int i = 2; i <= sqrt(n); i++) {
      if (n % i == 0) return false;
   }
   return true;
}
bool isPalindrome(int n) {
   int num, digit, rev = 0;
   n = num;
   while (num) {
      digit = num % 10;
      rev = (rev * 10) + digit;
      num = num / 10;
   }
return n == rev ? true : false;
}
int getNextSmallestPrimePalindrome(int n) {
   int i = n + 1;
   while (true) {
      if (isPrime(i) && isPalindrome(i)) {
         return i;
      }
      i += 1;
   }
}
int main() {
   int N = 15;
   cout << getNextSmallestPrimePalindrome(N) << endl;
   return 0;
}

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

17