C++ - In tất cả các số nguyên tố từ 1 đến số n được nhập từ bàn phím

Viết một chương trình in ra tất cả số nguyên tố từ 1 đến số n được nhập từ bàn phím.

 

 

Bài giải

-------------------- ######## --------------------

Trước khi giải bài này chúng ta cùng xem lại cách giải của bài toán kiểm tra một số có phải là số nguyên tố không

Cách giải bài toán này như sau:

  • Nhập số từ bàn phím, ta gọi biến đó là so
  • Sử dụng vòng lặp while lặp từ 2 đến so
  • Trong mỗi vòng lặp sử dụng cách giải của bài toán kiểm tra một số có phải là số nguyên tố không ở bài trước

Và chúng ta sẽ giải bài toán trên bằng cách sử dụng vòng lặp while trong C++ như sau:

#include <cmath>
#include <iostream>
using namespace std;

int main() {
    int i = 2, j, so, kt;

    cout << "Nhap so: ";
    cin >> so;
    cout << "Tat ca cac so nguyen to tu 1 den " << so << " la: ";
    while (i <= so) {
        kt = 1;
        if (i != 0 && i != 1) {
            j = 2;
            while(j <= i/2) {
                if(i%j == 0) {
                    kt = 0;
                    break;
                }
                j++;
            }
        } else {
           kt = 0;
        }

        if(kt == 1) {
            cout << i << " ";
        }
        
       i++;
    }
    return 0;
}

Và kết quả sau khi thực thi chương trình trên như sau:

Khi nhập số là 10:

Khi nhập số là 15:

Khi nhập số là 20:

Nguồn: freetuts.net