จำนวนเฉพาะคือจำนวนเต็มที่มากกว่า 1 และตัวประกอบเฉพาะของจำนวนเฉพาะควรเป็นหนึ่งและตัวของมันเอง
จำนวนเฉพาะตัวแรกคือ −
2, 3, 5, 7, 11, 13 ,17
โปรแกรมตรวจสอบจำนวนเฉพาะว่าเป็นจำนวนเฉพาะหรือไม่ใช้ฟังก์ชันมีดังต่อไปนี้
ตัวอย่าง
#include <iostream>
using namespace std;
void isPrime(int n) {
int i, flag = 0;
for(i=2; i<=n/2; ++i) {
if(n%i==0) {
flag=1;
break;
}
}
if (flag==0)
cout<<n<<" is a prime number"<<endl;
else
cout<<n<<" is not a prime number"<<endl;
}
int main() {
isPrime(17);
isPrime(20);
return 0;
} ผลลัพธ์
17 is a prime number 20 is not a prime number
ฟังก์ชัน isPrime() ถูกใช้เพื่อค้นหาว่าตัวเลขนั้นเป็นจำนวนเฉพาะหรือไม่ มีลูปที่วิ่งจาก 2 ถึงครึ่งหนึ่งของ n โดยที่ n คือตัวเลขที่จะกำหนด แต่ละค่าของการวนซ้ำหาร n หากเศษที่เหลือของการหารนี้เป็น 0 แสดงว่า n หารด้วยตัวเลขลงตัว ไม่ใช่ตัวเดียวหรือตัวมันเอง ดังนั้นจึงไม่ใช่จำนวนเฉพาะและตั้งค่าสถานะเป็น 1 จากนั้นคำสั่ง break จะใช้เพื่อออกจากลูปดังที่แสดงด้านล่าง −
for(i=2; i<=n/2; ++i) {
if(n%i==0) {
flag=1;
break;
}
} หากค่าของแฟล็กยังคงเป็นศูนย์ แสดงว่าตัวเลขนั้นเป็นจำนวนเฉพาะและแสดงขึ้น หากค่าของแฟล็กถูกเปลี่ยนเป็นหนึ่ง ตัวเลขนั้นไม่ใช่จำนวนเฉพาะและจะแสดงขึ้น
if (flag==0) cout<<n<<" is a prime number"; else cout<<n<<" is not a prime number";
ฟังก์ชัน isPrime() ถูกเรียกจากฟังก์ชัน main() สำหรับค่า 17 และ 20 ซึ่งแสดงดังต่อไปนี้
isPrime(17); isPrime(20);