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

โปรแกรม C++ แสดงจำนวนเฉพาะ (Prime Numbers) ระหว่างสองช่วงด้วยฟังก์ชัน


จำนวนเฉพาะ (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++ ต่อไป