酷代码 AI
菜单
服务商

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

```cpp #include <iostream> using namespace std; // 该函数用于计算一个数的因子个数(不包含1和自身) int countFactors(int num) { int factorCount = 0; // 从2开始遍历到num - 1 for (int i = 2; i < num; i++) { if (num % i == 0) { // 如果i是num的因子,因子个数加1 factorCount++; } } return factorCount; } int main() { int n; // 从键盘读入整数n cin >> n; // 遍历1到n的每个数 for (int i = 1; i <= n; i++) { // 计算当前数的因子个数 int factors = countFactors(i); // 输出因子个数 cout << factors << endl; } return 0; } ``` 代码解释 1. `countFactors`函数: - 该函数接收一个整数`num`作为参数。 - 使用`for`循环从2开始遍历到`num - 1`,检查每个数是否是`num`的因子。 - 如果是因子,则`factorCount`加1。 - 最后返回`factorCount`。 2. `main`函数: - 从键盘读入整数`n`。 - 使用`for`循环遍历1到`n`的每个数。 - 对于每个数,调用`countFactors`函数计算其因子个数。 - 输出每个数的因子个数。 复杂度分析 - 时间复杂度:$O(n^2)$,因为对于每个数都需要遍历其所有可能的因子。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2026-02-06 20:39:58 | AI问答 | 436点数解答]

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