题解 | #质数因子#

质数因子

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-25 22:06
已编辑
华为 2012基座大模型(预研) 15A 硕士985
点赞 评论 收藏
分享
挥毫自在:想白嫖你呢
点赞 评论 收藏
分享
前段时间投boss,实在没绷住,就发出来吧
测开小登的自我救赎:这种就别较真了,感觉应该是那种吃上了学历贬值的时代红利感觉自己也能找一堆92硕士的边角料小公司吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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