题解 | #质数因子#

质数因子

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long num = scanner.nextLong();
        //其实不用遍历到num,只要遍历到平方根,因为,num在循环中逐步缩小,所以
        long sqrt_num = (long) Math.sqrt(num);
        //对于每个i都进行while循环看是不是因数,因为while循环会一直直到不能整除,所以找出的因子全部都是质因数
        for (long i = 2; i <= sqrt_num; ++i) {
            while (num % i == 0) {
                System.out.print(i + " ");
                num /= i;
            }
        }
        //最后再输出那个不能整除的最大的且不为1的质因数
        System.out.println(num == 1 ? "" : num);

    }
}

全部评论

相关推荐

08-27 12:02
已编辑
南京外国语学校 网络安全
再来一遍:实则劝各位不要all in华子,不要相信华为hr
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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