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

เลขเฉพาะที่ใกล้ที่สุดและน้อยกว่า n ใน C++

โจทย์

เราได้รับตัวเลข n เราต้องหาเลขเฉพาะที่ใกล้ที่สุดและน้อยกว่า n เราสามารถหาตัวเลขได้ง่ายๆ หากเริ่มตรวจสอบจาก n - 1 มาดูตัวอย่างกัน

อินพุต

10

เอาต์พุต

7

อัลกอริธึม

  • กำหนดตัวเลข n
  • เขียนลูปที่วนรอบจาก n - 1 ถึง 1
    • คืนค่าเลขเฉพาะแรกที่เจอ
  • คืนค่า -1 ถ้าไม่พบเลขเฉพาะที่น้อยกว่า n ที่กำหนด

การนำไปใช้งาน

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

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

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

int getNearestPrimeNumber(int n) { 
    for (int i = n - 1; i > 1; i--) { 
        if (isPrime(i)) { 
            return i; 
        } 
    } 
    return -1; 
} 

int main() { 
    int n = 20; 
    cout << getNearestPrimeNumber(n) << endl; 
    return 0; 
}

ผลลัพธ์

หากคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้

19