酷代码 AI
菜单
服务商

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

```cpp #include <iostream> using namespace std; // 计算一个数的因子个数(不包含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 cin >> n; // 遍历从1到n的每个数 for (int i = 1; i <= n; i++) { // 计算当前数的因子个数 int factorCount = countFactors(i); // 输出因子个数 cout << factorCount << endl; } return 0; } ``` 代码解释: 1. `countFactors`函数:该函数接受一个整数`num`作为参数,用于计算`num`的因子个数(不包含1和`num`本身)。通过一个`for`循环,从2开始到`num - 1`,检查每个数是否能整除`num`,如果能整除,则因子个数加1。 2. `main`函数: - 首先从键盘读入一个整数`n`。 - 然后使用一个`for`循环遍历从1到`n`的每个数。 - 对于每个数,调用`countFactors`函数计算其因子个数,并将结果输出到一行。 复杂度分析: - 时间复杂度:对于每个数`i`,计算其因子个数的时间复杂度为$O(i)$,因此总的时间复杂度为$O(n^2)$。 - 空间复杂度:只使用了常数级的额外空间,因此空间复杂度为$O(1)$。 [2026-02-07 20:20:55 | AI问答 | 438点数解答]

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