Bài tập Java: In ra màn hình 25 số nguyên tố đầu tiên.

Đề bài tập Java in ra màn hình 25 số nguyên tố đầu tiên. Bạn có thể tham khảo bài viết số nguyên tố là gì? để tìm hiểu về số nguyên tố.

Mã nguồn - Source Code:


/**
 * @(#)Print25FirstPrimeNumber.java
 *
 * Print25FirstPrimeNumber application
 *
 * @author Bui Ngoc Son
 * @website VNLIVES.NET
 * @version 1.00 2014/9/15
 */

public class Print25FirstPrimeNumber {
   
    public static void main(String[] args) {
        int primeNumber = 2;    // primeNumber tên tiếng anh của số nguyên tố.
                                // Số 0 và 1 không phải là số nguyên tố nên ta bắt đầu kiểm tra từ 2.
                                // Biến này dùng để khỏi tạo một số và kiểm tra,
                                // và xem nó cáo phải là số nguyên không?
       
        int flag;               // Dùng để xác định primeNumber là số nguyên tố.
                                // Flat = 0: Số primeNumber chưa được kiểm tra.
                                // Flat = 1: Số primeNumber là số nguyên tố.
                                // Flat = 2: Số primeNumber không phải là số nguyên tố.
        int number = 0;
        while (number < 25)
        {

            flag = 0; // Khi bắt đầu kiểm tra một số mới thì flag luôn được trả về 0.

            // Theo định số nguyên tố chia chia hết cho 1 và chính nó.
            // Mà tất cả các số tự nhiên đều chia hết cho một,
            // nên vòng lập kiểm tra số nguyên tố primeNumber có chia hết cho số nào khác không sẽ bắt đầu từ 2.
            // Cứ mỗi lần tìm thấy một số(n) mà primeNumber chia hết thì flag sẽ được tăng lên một,
            // điều này có nghĩa là nếu flag bằng 1 thì nó chỉ có thể chia hết cho chính bản thân nó,
            // từ đó suy ra nó là số nguyên tố.
            // Còn trường hợp flag lớn hơn 1 thì có nghĩa là nó chia hết được cho một số thứ 2(khác 1 và chính nó),
            // từ đây ta xác định được nó không phải là số nguyên tố.
            for (int n = 2; n <= primeNumber; n++) {
                if (primeNumber % n == 0) {
                    flag++;
                   
                    // Chỉ cần xác định được có số thứ 2 chia hết được thì ta không cần tiếp tục kiểm tra,
                    // vì như vậy đã đủ điều kiện xác định xem số đó có phải là số nguyên tố hay không rồi.
                    if (flag == 2) {
                        break;
                    }
                }
            }

            // Khi chạy kết vòng lập for kiểm tra tra trên,
            // flag bằng 1 thì điều đó chứng minh được số primeNumber hiện tại
            // chỉ chia hết cho cho 1 và chính nó, ta chỉ việc in nó ra màn hình.
            if (flag == 1) {
                System.out.println("Prime number: " + primeNumber);
               
                // Mỗi lần xác định được 1 số nguyên ta sẽ tăng số đếm number lên một đơn vị,
                // điều này sẽ giúp ta xác định được số lượng của số nguyên tố cần in ra màn hình(ở ví dụ này là 25 số).
                number++;
            }
           
            primeNumber++;

        }
    }

}


Kết quả - Result:

----Configuration: Print25FirstPrimeNumber - JDK version 17~1.0_2 - ----
Prime number: 2
Prime number: 3
Prime number: 5
Prime number: 7
Prime number: 11
Prime number: 13
Prime number: 17
Prime number: 19
Prime number: 23
Prime number: 29
Prime number: 31
Prime number: 37
Prime number: 41
Prime number: 43
Prime number: 47
Prime number: 53
Prime number: 59
Prime number: 61
Prime number: 67
Prime number: 71
Prime number: 73
Prime number: 79
Prime number: 83
Prime number: 89
Prime number: 97

Process completed.



Writer:

No comments:

Post a Comment