Lập trình java hôm nay sẽ giới thiệu cho các bạn về một bài toán kiểm tra số nguyên tố trong java, để làm được yêu cầu của bài toán này mọi người cần phải phân tích kỹ lượng về đầu vào và đầu ra của bài toán, quan trong là thuật toán kiểm tra số nguyên tố.
Thế nào là số nguyên tố.
Số nguyên tố là một số ước của nó chỉ chia hêt cho 1 và chính nó ví dụ như : 2,3,5,7,11,13,17.....Có nhiều cách để suy luận bài toán thật đơn giản nhưng để làm được điều đó các bạn phải thực hành và đưa ra nhiều biện pháp để xử lý, nói chung luyện tập, khi xây dựng chương trình bạn phải nắm bắt được những điều sau:
- Kết quả đúng
- chương trình chạy nhanh nhất
- code dễ hiểu
- giảm thiểu bộ nhớ
Xử lý bài toán
Đầu vào của bài toán:
Như thuật toán mình đã trình bày các bạn thực hiện vòng lặp, ở đây mình dùng vòng lặp for để thực hiện cho i chạy đên sqrt(n).
Thực hiện kiểm tra n%i
Câu hỏi .
1. Tại sao chỉ thực hiện đến sqrt(n).
2. Tại sao không thực hiện lệnh else (n%i !=0)
Toàn bộ code chương trình kiểm tra số nguyên tố của n nguyên dương.
Đầu vào của bài toán:
Nhập vào số nguyên dương nĐầu ra của bài toán:
Kiểm tra số nguyên đó có phải là số nguyên tố không?Thuật toán kiểm tra số nguyên tố
Dùng một vòng lập thực hiện đến sqrt(n) sau đó thực hiện n%iCode chương trình, sau đây là hàm kiểm tra số nguyên tố.
Nếu n%i==0 return false hoặc return true;
boolean checkNguyenTo(int n){Giải thích:
if(n<=2){
return true;
}else {
for(int i =2;i<=Math.sqrt(n);i++){
if(n % i == 0)
return false;
}
}
return true;
}
Như thuật toán mình đã trình bày các bạn thực hiện vòng lặp, ở đây mình dùng vòng lặp for để thực hiện cho i chạy đên sqrt(n).
Thực hiện kiểm tra n%i
Câu hỏi .
1. Tại sao chỉ thực hiện đến sqrt(n).
2. Tại sao không thực hiện lệnh else (n%i !=0)
Toàn bộ code chương trình kiểm tra số nguyên tố của n nguyên dương.
import java.util.Scanner;Chúc các học tốt và thi tốt !.
public class SoNguyenTo {
boolean kiemtranguyento(int n){
for(int i =2; i<=Math.sqrt(n);i++){
if(n%i == 0){
return false;
}
}
return true;
}
public static void main(String args[]){
Scanner s = new Scanner(System.in);
System.out.printf("Kiem tra so nguyen to \n");
System.out.printf("Nhap vao so nguyen duong \n");
int n = s.nextInt();
SoNguyenTo snt = new SoNguyenTo();
if(snt.kiemtranguyento(n)){
System.out.printf("So : " +n +" la so nguyen to");
}else{
System.out.printf("So : " +n +" khong phai la so nguyen to");
}
}
No comments:
Post a Comment