有关如下 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);
}
- A.
n <= 1条件用于判断输入0、1以及负数时的情况,不能省略。 - B.
n == 2条件及其相关代码省略,程序的输出结果没有区别。 - C.
break语句不可以省略,否则非素数还将执行最后一行的语句。 - D.
limit = sqrt(n) + 1语句中的1可以修改为其他大于等于1的正整数,执行结果不会有错误,但循环次数增多,效率有所影响。