题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import static java.lang.Math.sqrt;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int num=Integer.parseInt(s);
StringBuilder sb = new StringBuilder();
for(int i=2;i<=sqrt(num);i++){
if(num%i==0){
sb.append(i).append(" ");
num/=i;
i--;
}
}
sb.append(num).append(" ");
System.out.println(sb.toString());
}
}
/**
1、任何一个合数都是一系列质数的乘积
2、这里求的就是这一系列质数
3、正整数可以分为合数以及1和质数
4、当为合数时,循环中能被整除的i就是质因子.num不断变小,直到最后为一个质因子
当得到一个因子后,i不变;当i不为因子时i++;
合数的因子一定能拆为一系列质数
5、当为1或者质数是直接输出其自身,合数的最后一个因子也是质数故也要输出
6、这里i小于等于sqrt(num),质因子小等于num的开方。
*/


传音控股晋升空间 52人发布