题解 | #约数的个数#
约数的个数
https://www.nowcoder.com/practice/04c8a5ea209d41798d23b59f053fa4d6
#include <iostream> #include <vector> #include <cmath> // 计算约数个数 int countDivisors(int num) { int count = 0; int sqrtNum = static_cast<int>(std::sqrt(num)); for (int i = 1; i <= sqrtNum; ++i) { if (num % i == 0) { count += 2; // 计算两个因子:i 和 num/i if (i == num / i) { count--; // 如果 i 和 num/i 相等,只计算一个 } } } return count; } int main() { int N; std::cin >> N; std::vector<int> nums(N); // 输入整数 for (int i = 0; i < N; ++i) { std::cin >> nums[i]; } // 计算并输出每个数的约数个数 for (int i = 0; i < N; ++i) { int result = countDivisors(nums[i]); std::cout << result << std::endl; } return 0; }