18/03/2021, 09:40

Bài tập Java - Phân tích số nguyên n thành tích các số nguyên tố

Bài tập Java - Liệt kê tất cả số nguyên tố có 5 chữ số trong Java Nội dung chính Bài tập Java - Phân tích số nguyên n thành tích các số nguyên tố Lời giải Bài tập Java - Phân tích số nguyên n thành tích các số nguyên tố Đề bài : Viết chương trình phân ...

Bài tập Java - Liệt kê tất cả số nguyên tố có 5 chữ số trong Java

Nội dung chính

  • Bài tập Java - Phân tích số nguyên n thành tích các số nguyên tố
  • Lời giải

Bài tập Java - Phân tích số nguyên n thành tích các số nguyên tố

Đề bài: Viết chương trình phân tích số nguyên n thành các thừa số nguyên tố trong Java. Ví dụ: 12 = 2 x 2 x 3. Số nguyên dương n được nhập từ bàn phím.

Phân tích số nguyên n thành tích các số nguyên tố trong java

Lời giải

Sau đây là chương trình java phân tích số nguyên n thành tích các số nguyên tố:

File: BaiTap9.java


package vn.viettuts.baitap;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Chương trình phân tích số nguyên n thành các thừa số nguyên tố. 
 * Ví dụ: 12 = 2 x 2 x 3.
 * 
 * @author viettuts.vn
 */
public class BaiTap9 {
    private static Scanner scanner = new Scanner(System.in);
    
    /**
     * main
     * 
     * @param args
     */
    public static void main(String[] args) {
        System.out.print("Nhập số nguyên dương n = ");
        int n = scanner.nextInt();
        // phân tích số nguyên dương n
        List<Integer> listNumbers = phanTichSoNguyen(n);
        // in kết quả ra màn hình
        System.out.printf("Kết quả: %d = ", n);
        int size = listNumbers.size();
        for (int i = 0; i < size - 1; i++) {
            System.out.print(listNumbers.get(i) + " x ");
        }
        System.out.print(listNumbers.get(size - 1));
    }
    
    /**
     * Phân tích số nguyên thành tích các thừa số nguyên tố 
     * 
     * @param positiveInt
     * @return
     */
    public static List<Integer> phanTichSoNguyen(int n) {
        int i = 2;
        List<Integer> listNumbers = new ArrayList<Integer>();
        // phân tích
        while (n > 1) {
            if (n % i == 0) {
                n = n / i;
                listNumbers.add(i);
            } else {
                i++;
            }
        }
        // nếu listNumbers trống thì add n vào listNumbers
        if (listNumbers.isEmpty()) {
            listNumbers.add(n);
        }
        return listNumbers;
    }
}

Kết quả:

Nhập số nguyên dương n = 100
Kết quả: 100 = 2 x 2 x 5 x 5

Trong ví dụ trên, chúng tôi sử dụng List interface để lưu trữ các phần tử là các thừa số nguyên tố. Bạn có thể tìm thêm bài học List trong java và ArrayList trong java.

Bài tập Java - Liệt kê tất cả số nguyên tố có 5 chữ số trong Java
0