题解 | 质数因子

质数因子

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);
        if (!in.hasNextLong()) {
            return;
        }

        long n = in.nextLong();
        StringBuilder out = new StringBuilder();

        while ((n & 1L) == 0L) {
            appendFactor(out, 2L);
            n >>= 1;
        }

        for (long i = 3L; i <= n / i; i += 2L) {
            while (n % i == 0L) {
                appendFactor(out, i);
                n /= i;
            }
        }

        if (n > 1L) {
            appendFactor(out, n);
        }

        System.out.println(out.length() == 0 ? "" : out.substring(1));
    }

    private static void appendFactor(StringBuilder out, long p) {
        out.append(' ').append(p);
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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