#13951. [GESP202609 二级 C++] 第 10 题
[GESP202609 二级 C++] 第 10 题
有关如下 C++ 代码描述,变量都是整型,错误的是( )。
int n, limit, i;
cout << "请输入一个正整数: ";
cin >> n;
if (n <= 1)
printf("%d非素数", n);
else if (n == 2)
printf("2是素数");
else {
limit = sqrt(n) + 1;
for (i = 2; i < limit; i++)
if (n % i == 0) {
printf("%d非素数", n);
break;
}
if (i >= limit)
printf("%d是素数", n);
}
{{ select(1) }}
- n <= 1 条件用于判断输入 0、 1 以及负数时的情况,不能省略。
- n == 2 条件及其相关代码省略,程序的输出结果没有区别。
- break 语句不可以省略,否则非素数还将执行最后一行的语句。
- limit = sqrt(n) + 1 语句中的 1 可以修改为其他大于等于 1 的正整数,执行结果不会有错误,但循环 次数增多,效率有所影响。