题解 | #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#
全部评论

相关推荐

09-25 14:44
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务