จำนวนเฉพาะคือจำนวนเต็มที่มากกว่า 1 และตัวประกอบเฉพาะของจำนวนเฉพาะควรเป็นหนึ่งและตัวของมันเอง จำนวนเฉพาะกลุ่มแรกบางจำนวน ได้แก่ 2, 3, 5, 7, 11, 13,17 เป็นต้น
อาจมีจำนวนเฉพาะจำนวนมากระหว่างช่วงสองช่วง ตัวอย่างเช่น จำนวนเฉพาะระหว่างช่วง 5 ถึง 20 คือ −
5, 7, 11, 13, 17 and 19.
โปรแกรมค้นหาและแสดงจำนวนเฉพาะระหว่างสองช่วงมีดังต่อไปนี้
ตัวอย่าง
#include <iostream>
using namespace std;
void PrimeNumbers (int lbound, int ubound) {
int flag, i;
while (lbound <= ubound) {
flag = 0;
for(i = 2; i <= lbound/2; i++) {
if(lbound % i == 0) {
flag = 1;
break;
}
}
if (flag == 0)
cout<<lbound<<" ";
lbound++;
}
}
int main() {
int lowerbound = 20, upperbound = 50;
cout<<"Prime numbers between "<<lowerbound<<" and "<<upperbound<<" are: ";
PrimeNumbers(lowerbound,upperbound);
return 0;
} ผลลัพธ์
Prime numbers between 20 and 50 are: 23 29 31 37 41 43 47
ในโปรแกรมข้างต้น ฟังก์ชัน main() มีเฉพาะออบเจ็กต์ cout และการเรียกใช้ฟังก์ชันไปยังฟังก์ชัน PrimeNumbers() โดยมีขอบเขตบนและล่างเป็นอาร์กิวเมนต์ ซึ่งสามารถเห็นได้ในข้อมูลโค้ดต่อไปนี้
cout<<"Prime numbers between "<<lowerbound<<" and "<<upperbound<<" are: "; PrimeNumbers(lowerbound,upperbound);
ในฟังก์ชัน PrimeNumbers() แต่ละหมายเลขจาก lbound ถึง ubound จะได้รับการทดสอบเพื่อดูว่าเป็นจำนวนเฉพาะหรือไม่ หากเป็นจำนวนเฉพาะ จะแสดงขึ้น ทำได้โดยใช้ลูป while
ใน while loop ค่าเริ่มต้นของ flag=0 หากตัวเลขไม่เป็นเฉพาะ ค่าของแฟล็กจะถูกตั้งค่าเป็น 1 ในลูป for หลังจากสิ้นสุดลูป for ถ้าแฟล็กยังคงเป็น 0 ตัวเลขจะเป็นจำนวนเฉพาะและแสดงขึ้น สามารถสังเกตได้จากข้อมูลโค้ดต่อไปนี้
while (lbound <= ubound) {
flag = 0;
for(i = 2; i <= lbound/2; i++) {
if(lbound % i == 0) {
flag = 1;
break;
}
}
if (flag == 0)
cout<<lbound<<" ";
lbound++;
}