Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương Trình Java Kiểm Tra Số Có Thể Biểu Diễn Dưới Dạng Tổng Hai Số Nguyên Tố


Trong bài viết này, chúng ta sẽ tìm hiểu cách kiểm tra xem một số có thể được biểu diễn dưới dạng tổng của hai số nguyên tố hay không. Số nguyên tố là những số đặc biệt chỉ có hai ước số là 1 và chính nó, không thể chia hết cho số nào khác.

Một số là số nguyên tố nếu các ước số duy nhất là 1 và chính nó. 11 là số nguyên tố, ước số là 1 và 11. Ví dụ số nguyên tố: 2, 3, 5, 7, 11, 13... 2 là số nguyên tố chẵn duy nhất, các số nguyên tố khác đều lẻ.

Dưới đây là minh họa:

Đầu vào

Giả sử đầu vào của chúng ta là:

Số đầu vào: 43

Đầu ra

Đầu ra mong muốn sẽ là:

Số có thể biểu diễn dưới dạng tổng hai số nguyên tố. Các giải pháp có thể: 43 = 2 + 41

Thuật Toán

Bước 1 - BẮT ĐẦU
Bước 2 - Khai báo hai biến nguyên my_input và i
Bước 3 - Đọc giá trị từ người dùng hoặc định nghĩa giá trị
Bước 4 - Định nghĩa hàm IsPrime nhận số nguyên, kiểm tra xem giá trị có phải số nguyên tố không
Bước 5 - Dùng vòng for, lặp từ 2 đến nửa 'my_input', kiểm tra 'i' và 'my_input - i' có đều là số nguyên tố không. Nếu có, lưu cả hai giá trị
Bước 6 - Hiển thị kết quả
Bước 7 - DỪNG

Ví Dụ 1

Ở đây, đầu vào được nhập bởi người dùng dựa trên nhắc nhở. Bạn có thể thử ví dụ này trực tiếp trong công cụ coding ground của chúng tôi.

import java.util.Scanner;
public class SumOfPrimes {
    public static void main(String[] args) {
        int my_input, i;
        boolean my_temp = false;
        my_input = 43;
        System.out.println("Các gói cần thiết đã được nhập");
        Scanner my_scanner = new Scanner(System.in);
        System.out.println("Đối tượng đọc đã được định nghĩa");
        System.out.print("Nhập số: ");
        my_input = my_scanner.nextInt();
        for (i = 2; i <= my_input / 2; ++i) {
            if (IsPrime(i)) {
                if (IsPrime(my_input - i)) {
                    System.out.println("Số có thể biểu diễn dưới dạng tổng hai số nguyên tố.");
                    System.out.println("Các giải pháp có thể:");
                    System.out.printf("%d = %d + %d\n", my_input, i, my_input - i);
                    my_temp = true;
                }
            }
        }
        if (!my_temp)
            System.out.println(my_input + " không thể biểu diễn dưới dạng tổng hai số nguyên tố.");
    }
    static boolean IsPrime(int num) {
        boolean my_prime = true;
        for (int i = 2; i <= num / 2; ++i) {
            if (num % i == 0) {
                my_prime = false;
                break;
            }
        }
        return my_prime;
    }
}

Đầu Ra

Các gói cần thiết đã được nhập
Đối tượng đọc đã được định nghĩa
Nhập số: 43
Số có thể biểu diễn dưới dạng tổng hai số nguyên tố.
Tất cả các giải pháp có thể:
43 = 2 + 41

Ví Dụ 2

Ở đây, số nguyên đã được định nghĩa trước, và giá trị của nó được truy cập và hiển thị trên bảng điều khiển.

public class SumOfPrimes {
    public static void main(String[] args) {
        int my_input, i;
        boolean my_temp = false;
        my_input = 43;
        System.out.println("Số được định nghĩa là " + my_input);
        for (i = 2; i <= my_input / 2; ++i) {
            if (IsPrime(i)) {
                if (IsPrime(my_input - i)) {
                    System.out.println("Số có thể biểu diễn dưới dạng tổng hai số nguyên tố.");
                    System.out.println("Các giải pháp có thể:");
                    System.out.printf("%d = %d + %d\n", my_input, i, my_input - i);
                    my_temp = true;
                }
            }
        }
        if (!my_temp)
            System.out.println(my_input + " không thể biểu diễn dưới dạng tổng hai số nguyên tố.");
    }
    static boolean IsPrime(int num) {
        boolean my_prime = true;
        for (int i = 2; i <= num / 2; ++i) {
            if (num % i == 0) {
                my_prime = false;
                break;
            }
        }
        return my_prime;
    }
}

Đầu Ra

Số được định nghĩa là 43
Số có thể biểu diễn dưới dạng tổng hai số nguyên tố.
Tất cả các giải pháp có thể:
43 = 2 + 41