酷代码 AI
菜单
服务商

c++说明 从键盘读入一个整数n(n<=100),请求出1~n的每个数的因子个数(求因子个数时,不含1和自己,比如10只有2个因子),每行一个打印出来。 输入格式 一个整数n 输出格式 n行,每行一个整数,代表了每个整数的因子个数

以下是实现该功能的C++代码: ```cpp #include <iostream> // 计算一个数的因子个数(不包含1和自身) int countFactors(int num) { int count = 0; // 从2开始遍历到num-1,检查是否为因子 for (int i = 2; i < num; ++i) { if (num % i == 0) { ++count; } } return count; } int main() { int n; // 从键盘读入整数n std::cin >> n; // 确保n不超过100 if (n <= 100) { // 遍历1到n的每个数 for (int i = 1; i <= n; ++i) { // 计算当前数的因子个数 int factorCount = countFactors(i); // 输出因子个数 std::cout << factorCount << std::endl; } } return 0; } ``` 代码解释: 1. `countFactors`函数:该函数用于计算一个数的因子个数(不包含1和自身)。它通过一个`for`循环从2遍历到`num - 1`,检查每个数是否能整除`num`,如果能整除,则因子个数加1。 2. `main`函数: - 从键盘读入一个整数`n`。 - 检查`n`是否小于等于100。 - 如果满足条件,使用一个`for`循环遍历从1到`n`的每个数,调用`countFactors`函数计算其因子个数,并将结果输出。 复杂度分析: - 时间复杂度:对于每个数,需要遍历从2到该数减1的所有数,因此时间复杂度为$O(n^2)$。 - 空间复杂度:只使用了常数级的额外空间,因此空间复杂度为$O(1)$。 [2026-01-16 20:42:52 | AI问答 | 467点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多