题解 | 质数因子
质数因子
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);
}
}

