分解质因数(如:90=二*3*3*5)
分解质因数(如:90=2*3*3*5)
分解质因数:如90=2*3*3*5,代码如下:
当输入108时,运行结果如下:
分解质因数:如90=2*3*3*5,代码如下:
package com.flyingh.demo; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Demo { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一个正整数:"); int n = Integer.parseInt(br.readLine()); System.out.println(n + "=" + getOut(n)); } private static StringBuilder sb = new StringBuilder(); private static String getOut(int n) { if (!isPrime(n)) { for (int i = 2; i < n; i++) { if (isPrime(i) && n % i == 0) { sb.append(i).append("*"); return getOut(n / i); } } } else { sb.append(n); } return sb.toString(); } private static boolean isPrime(int n) { // TODO Auto-generated method stub if (n == 1) { throw new IllegalArgumentException("参数不能为1"); } if (n == 2 || n == 3) { return true; } for (int j = 2; j <= Math.sqrt(n); j++) { if (n % j == 0) { return false; } } return true; } }
当输入108时,运行结果如下:
108=2*2*3*3*3