จำนวนเฉพาะ (Prime) คือจำนวนเต็ม > 1 ที่มีตัวหารได้แค่ 1 และตัวมันเอง ตัวอย่าง: 2, 3, 5, 7, 11, 13, 17...
จำนวนเฉพาะระหว่าง 5-20: 5, 7, 11, 13, 17, 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() เรียก primeNumbers(lowerbound, upperbound)
primeNumbers() วน while lbound ถึง ubound:
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++; }
- flag=0 เริ่มต้น
- for loop หาร lbound ด้วย 2 ถึง lbound/2
- หารลงตัว (flag=1) → ไม่ใช่เฉพาะ break
- จบ loop flag ยังเป็น 0 → เป็นเฉพาะ พิมพ์
- lbound++ ต่อไป