题解 | #质数因子#

质数因子

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();
    }
}

全部评论

相关推荐

贺兰星辰:不要漏个人信息,除了简历模板不太好以外你这个个人简介是不是太夸大了...
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务