酷代码 AI
菜单
服务商

从键盘读入一个整数n(n<=100),请求出1~n的每个数的因子个数(求因子个数时,不含1和自己,比如10只有2个因子),每行一个打印出来。C++ 简写易懂

```cpp #include <iostream> using namespace std; // 计算一个数的因子个数(不包含1和自身) int countFactors(int num) { int factorCount = 0; for (int i = 2; i < num; i++) { if (num % i == 0) { factorCount++; } } return factorCount; } int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { cout << countFactors(i) << endl; } return 0; } ``` 代码解释: 1. `countFactors` 函数: - 该函数接收一个整数 `num` 作为参数,用于计算该数的因子个数(不包含1和自身)。 - 使用 `for` 循环从2开始到 `num - 1` 进行遍历,如果 `num` 能被当前的 `i` 整除,则说明 `i` 是 `num` 的一个因子,因子个数 `factorCount` 加1。 - 最后返回因子个数。 2. `main` 函数: - 从键盘读取一个整数 `n`。 - 使用 `for` 循环从1到 `n` 进行遍历,对于每个数调用 `countFactors` 函数计算其因子个数,并将结果输出到一行。 复杂度分析: - 时间复杂度:对于每个数 `i`,计算其因子个数的时间复杂度为 $O(i)$,因此总的时间复杂度为 $O(n^2)$。 - 空间复杂度:只使用了常数级的额外空间,因此空间复杂度为 $O(1)$。 [2025-12-28 19:33:58 | AI问答 | 403点数解答]

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