题解 | #质数因子#

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607


public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        // 方法一:
        // 一个正整数最多有一个质因子大于其平方根,取平方根即可
        for (int i = 2; i * i <= num; i++) {
            while (num % i == 0) { // 
                // 由于连续因子的整除,得到的因子就是质数(小的因子都被除掉了,也就去除了非质数的数)
                System.out.print(i + " ");
                num /= i;
            }
        }
        
        //循环结束不是1的因子也是质数
        System.out.print(num == 1 ? "" : num);
        
        // 方法二: 上面相同逻辑改递归
//         getNum(num, 2);
    }

    static void getNum(int num, int start) {
        if (start * start > num) {
            System.out.print(num == 1 ? "" : num);
            return;
        }

        if (num % start == 0) {
            System.out.print(start + " ");
            num /= start;
            getNum(num, start);
        } else {
            getNum(num, start + 1);
        }
    }
}
全部评论

相关推荐

rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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