Lập trình C: Kiểm tra một số có phải số nguyên tố không
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;
}
Giải phóng thời gian, khai phóng năng lực