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.
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.kienthuclaptrinh.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 kienthuclaptrinh.net */ 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.