题解 | #质数因子#

质数因子

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int num = in.nextInt();
        int n = num;

        for (int i = 2; i <= Math.sqrt(num) + 1; i++) {
            int tmp = num % i;
            int div = num / i;
            if (tmp == 0) {
                System.out.print(i + " ");
                i = 1; // 实际上是下一次循环还从2开始,因为有i++;
                num = div; // 下一次循环是对除过的数进行判断
                n = div; //保存除过的数,因为有可能为最后一个质数
            }
        }
        if (n != 1) {
            System.out.print(n); //若n不等一1,那么就是本身为质数的数没有被检测到
        }
		// 有空循环,不推荐
        // for (int i = 2; i <= num; i++) {
        //     while (num % i == 0) {
        //         num /= i;
        //         System.out.print(i + " ");
        //     }
        //     if (i <= num && i * i > num) {
        //         System.out.print(num + " ");
        //         break;
        //     }
        // }
	  in.close();
    }
}

全部评论

相关推荐

昨天 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务