题解 | rin和快速迭代
rin和快速迭代
https://www.nowcoder.com/practice/a797241b43f34ed4a9ef6018747c30b1
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
int count = 0;
while (n > 2) {
n = countFactors(n);
count++;
}
System.out.println(count);
}
// 计算 n 的因子个数
private static long countFactors(long n) {
long count = 0;
for (long i = 1; i * i <= n; i++) {
if (n % i == 0) {
if (i * i == n) {
count += 1; // 如果 i*i == n, 只加一次
} else {
count += 2; // 否则加两次
}
}
}
return count;
}
}
查看1道真题和解析