本文共 2746 字,大约阅读时间需要 9 分钟。
To solve this problem, we need to determine the number of factors for each given positive integer. The solution involves understanding the prime factorization of a number and using it to compute the total number of factors.
The approach can be broken down into the following steps:
Prime Factorization: Decompose the given number into its prime factors. For example, the number 36 can be decomposed into (2^2 \times 3^2).
Exponent Tracking: For each prime factor, determine its exponent in the factorization. For instance, in the case of 36, the exponent of 2 is 2, and the exponent of 3 is also 2.
Calculate Factors: The total number of factors of a number can be found by taking the product of each prime factor's exponent incremented by one. For example, using the prime factors of 36, the total number of factors is ((2+1) \times (2+1) = 9).
Efficient Looping: Use efficient looping techniques to iterate through potential factors, and stop early when further division isn't possible. This optimization prevents unnecessary computations.
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextInt()) { int n = scanner.nextInt(); System.out.println(countFactors(n)); } } private static int countFactors(int n) { if (n <= 1) { return 1; } int factors = 1; for (int i = 2; i * i <= n; ) { if (n % i == 0) { int exponent = 0; while (n % i == 0) { exponent++; n /= i; } factors *= (exponent + 1); } else { i++; } } if (n > 1) { factors *= 2; } return factors; }}
This approach efficiently computes the number of factors for each positive integer, ensuring correct and optimal results.
转载地址:http://nvewk.baihongyu.com/