题解 | #JAVA质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Long in = sc.nextLong(); // 返回一个正确舍入的double值的正平方根 long k = (long) Math.sqrt(in); // 从最小的质数开始尝试 for (long i = 2 ; i <= k ; i++ ) { // 不断尝试直到不能被除尽 while ( in % i == 0 ) { System.out.print(i + " "); in = in / i ; } } // 输出最后的 System.out.println(in == 1 ? "" : in); // 关闭资源 sc.close(); } } /** 质数因子的意思就是这个数的所有质数约数,这个数可以由这些质数相乘得到。另外,题目要求是质数因子从小到大排序,以此,尝试质数因子时,也从小到大尝试。 l 输入一行,代表要计算值 l 对输入值进行正平方根,该平方根即为质数因子的最大值 l 从最小的质数开始尝试,不断尝试直到不能被除尽 l 输出每个质数因子 */#JAVA#