Lập trình Java – Phân tích một số nguyên thành các thừa số nguyên tố

Lập trình Java

– Phân tích một số nguyên thành các thừa số nguyên tố

Bài trước

Bài sau

Viết chương trình liệt kê tất cả các số nguyên tố nhỏ hơn n trong Java. Số nguyên dương n được nhập từ bàn phím.

Định nghĩa

Số nguyên tố là số lớn hơn 1 và chỉ chia hết cho 1 và chính nó.
Ví dụ: 2, 3, 5, 7, 11, 13, 17, … là những số nguyên tố.
Chú ý: Số 0 và 1 không phải là số nguyên tố. Chỉ có số 2 là số nguyên tố chẵn, tất cả các số chẵn khác không phải là số nguyên tố vì chúng chia hết cho 2.

Ví dụ số nguyên tố

Danh sách số nguyên tố nhỏ hơn 100:

Mã nguồn chương trình:

import java.util.Scanner;
public class Bai04 {

    
    public static void phanTich(int n){
        int i=2;
        while(n>1){
            if(isPrimeNumber(i)){
                if(n%i==0){
                    System.out.print(i+".");
                    n/=i;
                }
                else 
                    i++;
            }
            else 
                i++;
        }
    }
    public static boolean isPrimeNumber(int n) {
        // so nguyen n < 2 khong phai la so nguyen to
        if (n < 2) {
            return false;
        }
        // check so nguyen to khi n >= 2
        int squareRoot = (int) Math.sqrt(n);
        for (int i = 2; i <= squareRoot; i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static int nhap(){
        Scanner input= new Scanner(System.in);
        boolean check= false;
        int n=0;
        while(!check){
            System.out.print(" ");
            try{
                n= input.nextInt();
                check= true;
            }catch(Exception e){
                System.out.println("Ban phai nhap so! hay nhap lai...");
                input.nextLine();
            }
        }
        return (n);
    }
    public static void main(String[] args) {
        System.out.print("Nhap n");
        int n= nhap();
        System.out.print("n= " );
        phanTich(n);
    }

}

Kết quả:

Nhap n Ban phai nhap so! 
2345
 n= 5.7.67.

 

Bài trước

Bài sau