เราได้รับตัวเลข 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