题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
java 通过所有测试用例
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
// 记录结果 加快速度
Map<Integer,String> res = new HashMap<Integer,String>();
// 循环获取输入值
while(in.hasNextInt()){
Integer num = in.nextInt();
zisu(res,num);
}
}
// 计算结果
public static void zisu(Map res, Integer n){
Integer num = n;
if(res.containsKey(num)){
System.out.print(res.get(num));
}
StringBuffer cc = new StringBuffer();
for(int i = 2 ; i <= num/2; i++ ){
while(num%i == 0){
System.out.print(i +" ");
cc.append(i +" ");
num = num/i;
if(res.containsKey(num)){
cc.append(res.get(num));
res.put(n,cc.toString());
System.out.print(cc.toString());
return;
}
}
}
if(num != 1){
System.out.print(num +" ");
cc.append(num +" ");
res.put(n,cc.toString());
}
System.out.println();
}
}
#2022届毕业生现状#
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
// 记录结果 加快速度
Map<Integer,String> res = new HashMap<Integer,String>();
// 循环获取输入值
while(in.hasNextInt()){
Integer num = in.nextInt();
zisu(res,num);
}
}
// 计算结果
public static void zisu(Map res, Integer n){
Integer num = n;
if(res.containsKey(num)){
System.out.print(res.get(num));
}
StringBuffer cc = new StringBuffer();
for(int i = 2 ; i <= num/2; i++ ){
while(num%i == 0){
System.out.print(i +" ");
cc.append(i +" ");
num = num/i;
if(res.containsKey(num)){
cc.append(res.get(num));
res.put(n,cc.toString());
System.out.print(cc.toString());
return;
}
}
}
if(num != 1){
System.out.print(num +" ");
cc.append(num +" ");
res.put(n,cc.toString());
}
System.out.println();
}
}
#2022届毕业生现状#