Bài 18. In các số nguyên tố nhỏ hơn 1000

Bài số 16 trong 69 bài của series Học C Không Khó

Tiếp tục là các bài tập lập trình C luyện tập kiến thức vòng lặp for. Trong bài viết này, chúng ta sẽ cùng đi code bài tập in các số nguyên tố nhỏ hơn 1000 lên màn hình console. Nếu bạn chưa biết tới khóa học lập trình C của lập trình không khó, hãy xem ngay bài giới thiệu khóa học Học C bá đạo ngay nhé.

Danh sách các số nguyên tố nhỏ hơn 100 (các ô màu xanh)

Đề bài tập thực hành

/*
In ra các số nguyên tố nhỏ hơn 1000.
Bài tập nhỏ:
1. Kiểm tra số nhập từ bàn phím có phải SNT không?
2. Kiểm tra và in ra các SNT nhỏ hơn 1000
*/

Lưu ý: Trong video hướng dẫn code kiếm tra số nguyên tố bị thiếu mất điều kiện kiểm tra nếu số nhập vào < 2. Nên là nếu nhập 1 thì vẫn là số nguyên tố. Các bạn sử dụng code phía dưới đã được cập nhật nhé. Rất xin lỗi vì sai sót này!

Kiểm tra số nguyên tố trong C

Dưới đây là code kiểm tra 1 số có phải số nguyên tố hay không.

Kết quả chạy thử chương trình:

In các số nguyên tố nhỏ hơn 1000

Để in các số nhỏ hơn 1000, các đơn giản nhất là:

  1. Duyệt qua từng số từ 2 đến 1000 dùng vòng lặp
  2. Với mỗi số, kiểm tra xem nó có phải số nguyên tố không

Kết quả chạy chương trình cho ra danh sách các số nguyên tố trong đoạn [0, 1000]:

Tham khảo thêm bài viết liên quan:

  1. Sàng nguyên tố Eratosthenes cài đặt bằng C/C++, Java
  2. Real-world applications of prime numbers

 

Các bài viết trong SeriesBài trước: Bài 17. Tính tổng các số chẵn trong đoạn a bBài sau: Bài 19. Vòng lặp while và do while trong C

14 COMMENTS

  1. ở bài tập 1 không biết e làm như này thì có được không ạ ?
    #include
    using namespace std;
    int main ()
    {
    int a;
    cin>>a;
    if ( a%2!=0 && a%5!=0 && a%3!=0 )
    {
    cout<<"day la so nguyen to"<<endl;
    }
    else
    {
    cout<<"day khong phai so nguyen to"<<endl;
    }
    return 0;
    }

  2. Anh ơi, em làm cách này có được không ạ? (ban đầu em làm sai, e không có đặt lại count =0 và đặt lệnh print i ở ngoài lệnh for thì nó ra kết quả duy nhất là 1001, lệnh for điều kiện của i là i<=1000 hay i<1000 ạ?)
    #include
    int main ()
    {
    int i,j,count=0;
    printf(“Tap hop cac so nguyen to nho hon 1000 la:\n”);
    for(i=2;i<=1000;i++){
    for(j=1;j<=i;j++){
    if(i%j==0){
    count+=1;}}
    if(count==2){
    printf("%d\t ",i);}
    count=0;
    }
    return 0;
    }

    • ở đây count được xem như là biến để đếm số ước của a .
      Vì số nguyên tố thì chỉ có 2 ước nên nếu count = 2 thì a là số nguyên tố

  3. anh cho em hỏi số 2 là trường hợp đặc biệt mà điều kiện là nhỏ hơn căn của 2 (1.414…) thì làm sao nó vẫn nhẩy được vào dãy ngtố ?

  4. em chào anh . anh có thể giải thích cho em tại sao để int count=0; bên ngoài hàm for lại k chạy đc chương trình k ạ . em cám ơn

    • Vì biến count cần phải set lại giá trị về 0 mỗi khi bắt đầu kiểm tra một số mới nhé em.

LEAVE A REPLY

Please enter your comment!
Please enter your name here