题解 | 质因数的个数

质因数的个数

https://www.nowcoder.com/practice/20426b85f7fc4ba8b0844cc04807fbd9


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
            int a = in.nextInt();
            int count = 0;
            while(a != 0){
                for(int i = 2;i<=Math.sqrt(a);i++){
                    if(a % i == 0 && check(i)){
                        a = a / i;
                        count++;
                        break;
                    }
                }
                if(check(a)){
                    count++;
                    break;
                }
            }
            System.out.println(count);
        }
    }



    public static boolean check(int x){
        if(x == 2 || x == 3){
            return true;
        }
        double max = Math.sqrt(x);
        for(int i = 2;i<max;i++){
            if(x % i == 0){
                return false;
            }
        }
        return true;
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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