酷代码 AI
菜单
服务商

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

下面是使用 C++ 语言实现从键盘读入一个整数 `n`(`n <= 100`),并输出 1 到 `n` 每个数的因子个数(不含 1 和自身)的代码: ```cpp #include <iostream> // 定义一个函数来计算一个数的因子个数 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 是否满足条件 if (n <= 100) { // 遍历 1 到 n 的每个数 for (int i = 1; i <= n; i++) { // 调用 countFactors 函数计算因子个数 int factorCount = countFactors(i); // 输出每个数的因子个数 std::cout << factorCount << std::endl; } } return 0; } ``` 代码解释 1. `countFactors` 函数:该函数接受一个整数 `num` 作为参数,用于计算该数的因子个数(不含 1 和自身)。函数内部使用一个 `for` 循环从 2 开始遍历到 `num - 1`,如果 `num` 能被当前遍历的数整除,则因子个数加 1。最后返回因子个数。 2. `main` 函数: - 首先从键盘读入一个整数 `n`。 - 检查 `n` 是否小于等于 100,如果是,则使用一个 `for` 循环遍历 1 到 `n` 的每个数。 - 对于每个数,调用 `countFactors` 函数计算其因子个数,并将结果输出到控制台,每行一个。 复杂度分析 - 时间复杂度:$O(n^2)$,其中 $n$ 是输入的整数。因为对于每个数,都需要遍历从 2 到该数减 1 的所有数来计算因子个数。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2026-02-07 21:00:48 | AI问答 | 558点数解答]

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