输入包含多组数据,每组数据包含一个正整数a(2≤a≤1000000)。
对应每组数据,以“a = a1 * a2 * a3...”的形式输出因式分解后的结果。
10<br/>18
10 = 2 * 5<br/>18 = 2 * 3 * 3
import java.util.*;
public class Main{
public static void getPrimeNum(ArrayList<Integer> list,int n){
for(int i = 2; i <= Math.sqrt(n); i++){
if(n % i == 0){
while(n % i == 0){
list.add(i);
n = n / i;
}
}
}
//素数的情况
if(n != 1){
list.add(n);
}
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
int a = scan.nextInt();
ArrayList<Integer> list = new ArrayList<>();
getPrimeNum(list,a);
System.out.printf("%d = ",a);
System.out.printf("%d",list.get(0));
for(int i = 1; i < list.size(); i++){
System.out.printf(" * %d",list.get(i));
}
System.out.println();
}
}
} import java.util.*;
import java.math.*;
public class Main{
public static List<String> fun(int n){
List<String> list = new ArrayList<>();
for(int i = 2;i <= Math.sqrt(n);i++){
while(n % i == 0){
list.add(String.valueOf(i));
n /= i;
}
}
if(n != 1){
list.add(String.valueOf(n));
}
return list;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
List<String> list = fun(n);
System.out.printf("%d = %s\n",n,String.join(" * ",list));
}
}
}