题解 | #质数因子#

质数因子

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            long a = in.nextInt();
            long b = 2;
            while (a > 1 && b <= Math.sqrt(a)) { // 这里b不必加到a(会超时),加到根号a,最后再加一个判断
                if (a % b == 0) {
                    a /= b;
                    System.out.print(b);
                    if (a > 1) {
                        System.out.print(" ");
                    }
                    b = 2;
                } else {
                    b++;
                }
            }
            if (a != 1) { // 判断上面是b加到a停止的还是加到根号a仍未找到最后一个因子,后者最后一个因子就是a
                System.out.print(a);
            }
        }
    }
}

#华为机试##质数因子##在线编程#
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务