Lập trình C: Kiểm tra một số có phải số nguyên tố không

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Bài toán:

Hãy nhập vào một số bất kỳ và xác định xem số đó có phải số nguyên tố hay không?

Video tham khảo:

Code tham khảo:

Phân tích: Số nguyên tố là số nguyên dương >1 và chỉ chia hết cho 1 và chính nó. Ví dụ: 2, 3, 5, 7, 11, 13, ...
Cách thức xử lý: Cho 1 biến chạy i chạy từ 2 đến sqrt(N), và dùng 1 biến đánh dấu, nếu N chia hết cho i thì đánh dấu lại. Dựa trên giá trị của biến đánh dấu để kết luận N có là số nguyên tố hay không.

 

#include<stdio.h>
#include<math.h>

main(){
    float N;
    int i;
    int laNguyenTo=1; //Đây là biến đánh dấu, ban đầu chứa 1
    printf("\nMoi ban nhap vao mot so bat ky: ");
    scanf("%f",&N);
    if(N>1 && N==(int)N){ //Nếu N>1 và N là số nguyên thì mới check nguyên tố
        for(i=2; i<=sqrt(N); i++){
            if((int)N%i==0){ //nếu N chia hết cho i
                laNguyenTo=0; //thì đặt biến laNguyenTo chứa 0
                break; //, đồng thời thoát khỏi vòng lặp
            }
        }
        if(laNguyenTo==1){ //Nếu biến laNguyenTo không thay đổi giá trị so với ban đầu
            printf("\n%g la so nguyen to",N); //khẳng định N là số nguyên tố
        }else{ //nếu không thì
            printf("\n%g khong phai la so nguyen to",N); //khẳng định N không phải số nguyên tố
        }
    }else{//Nếu N không >1 và không phải số nguyên
        printf("\n%g khong du dieu kien de xac dinh tinh nguyen to",N);
        //, thì khẳng định N không đủ điều kiện xác định tính nguyên tố.
    }

    return 0;
}

» Tiếp: Đếm số từ trong chuỗi
« Trước: Kiểm tra một số có phải số chính phương không
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!