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

Ngày đăng: 1/2/2023 1:23:23 PM

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41  

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

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.

Nguồn tin: viettuts