Liệt kê các số nguyên tố nhỏ hơn n lập trình C/C++

Trong bài viết này chúng ta sẽ đi giải quyết bài toán Liệt kê các số nguyên tố nhỏ hơn n lập trình C/C++.

Liệt kê các số nguyên tố nhỏ hơn n

Để liệt kê các số nguyên tố nhỏ hơn n ý tưởng sẽ như sau, đầu tiên ta nhập n từ bàn phím, sau đó sẽ viết 1 hàm kiểm tra 1 số có phải là số nguyên tố hay không. Duyệt vòng lặp chạy từ 1 cho tới n, gọi hàm kiểm tra số thứ i có phải là số nguyên tố hay không, nếu có ta in số đó ra màn hình.

Ta có hàm kiểm tra một số có phải là số nguyên tố hay không như sau.

bool checkNT(int n){
    if(n<2) return false;
    int sq = sqrt(n);
    for(int i=2;i <=sq ;i++){
        if(n % i){
            return false;
        }
    }
    return true;
}

Nếu bạn không hiểu hàm này thì đọc bài viết dưới đây nhé, mình có giải thích tương đối rõ rằng rồi.

Chương trình hoàn chỉnh

#include <stdio.h>
#include <math.h>
//Hàm ki?m tra s? nguyên t?
bool checkNT(int n)
{
    if(n<2) return false;
    int sq = sqrt(n);
    for(int i=2;i <=sq ;i++){
        if(n % i == 0){
            return false;
        }
    }
    return true;
}
  
int main()
{
    int n;
    printf("Nhap n:");
    scanf("%d", &n); //Nhập n từ bàn phím
     
    int dem = 0; //Kh?i t?o bi?n dem = 0
    for(int i=1;i<n;i++){
        if(checkNT(i) == true)
         printf("%d ", i);//Nêu i là số nguyên tố thì ta in biến i ra màn hình
    }
}

Trong trường hợp đề bài yêu cầu là liệt kê số lượng số nguyên tố nhỏ hơn hoặc bằng n thì chỉ cần thay đổi điều kiện i<n thành i<=n là được nhé.

[Xem tất cả bài viết chủ đề C/C++ tại đây]

1

2

Phiếu bình chọn

Xếp hạng bài viết