Blog TOÁN-TIN của Thầy CHÂU HỮU SƠN

Tui là Giáo viên Chuyên Toán Trung học. Hãy xem thêm:
Vườn Toán học
Cảm ơn các bạn đã ghé thăm blog!

Thursday, December 17, 2015

On 7:22 AM by MATH CHANNEL in    2 comments
Chương trình phân tích một số nguyên dương thành các thừa số nguyên tố

import java.util.Scanner;

public class Main {

       public static int nhapSoTN() {
              Scanner input = new Scanner(System.in);
              boolean check = false;
              int n = 0;
              while (!check) {
                     try {
                           n = Integer.parseInt(input.nextLine());
                           if (n < 0) {
                                  System.out.println("Bạn phải nhập số tự nhiên! Hãy nhập lại.");
                                  continue;
                           }
                           check = true;
                     } catch (Exception e) {
                           System.out.println("Bạn phải nhập số tự nhiên! Hãy nhập lại.");
                     }
              }
              return (n);
       }

       public static boolean isPrime(int n) {
              boolean check = true;
              if ((n == 0) || (n == 1)) {
                     return false;
              } else {
                     for (int i = 2; i <= (int) Math.sqrt(n); i++)
                           if (n % i == 0) {
                                  check = false;
                                  break;
                           }
              }
              return check;
       }

       public static String ptThuaSoNT1(int n) {
              int i = 2, dem = 0;
              String str = "";
              while (n > 1) {
                     if (isPrime(i) && (n % i == 0)) {
                           do {
                                  n = n / i;
                                  dem = dem + 1;
                           } while (n % i == 0);
                           str = str + "(" + Integer.toString(i) + "^" + Integer.toString(dem) + ")";
                     } else {
                           i++;
                           dem = 0;
                     }
              }
              str = str.replaceAll("\\^1", "");
              return str;
       }

       public static String ptThuaSoNT(int n) {
              int i = 2;
              String str = "";
              while (n > 1) {
                     if (isPrime(i) && (n % i == 0)) {
                           str += Integer.toString(i) + ".";
                           n = n / i;
                     } else
                           i++;
              }
              str = str.substring(0, str.length() - 1);
              return str;
       }

       public static void main(String[] args) {
              System.out.println("Nhập số tự nhiên n: ");
              int n = nhapSoTN();
              System.out.println(n + " phân tích ra thừa số nguyên tố là: ");
              System.out.println(ptThuaSoNT1(n));
       }

}

2 comments: