质因数 就是一个数的约数,并且是质数。
比如8=2×2×2,2就是8的质因数;
12=2×2×3,2和3就是12的质因数。
把一个式子以12=2×2×3的形式表示,叫做分解质因数。
import java.sql.SQLSyntaxErrorException;
import java.util.*;
import static java.lang.Math.abs;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Map<Integer,Integer> map = primeFactor(n);
StringBuilder sb = new StringBuilder();
for(Map.Entry<Integer,Integer> entry : map.entrySet()){
int k = entry.getKey();
int v = entry.getValue();
for(int i =0;i<v;i++){
sb.append("*"+k);
}
}
if(sb.length()!=0)
System.out.println(n+"的质因素分解为:"+sb.substring(1));
else{
System.out.println(n+"没有质因数分解");
}
}
public static Map<Integer,Integer> primeFactor(int num){
Map<Integer,Integer>map = new HashMap<>();
int temp = num;
for(int i = 2;i<=num;i++){
if(isPrime(i)){
while(num%i ==0){
map.put(i,map.getOrDefault(i,0)+1);
num/=i;
}
}
}
return map;
}
public static boolean isPrime(int num){
if(num == 1)return false;
if(num == 2) return true;
if(num%2==0)return false;
for(int i = 3;i<=Math.sqrt(num);i++){
if(num % i ==0){
return false;
}
}
return true;
}
}