题型:组合题
阅读程序(1)
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int countPrimes(int n) {
int count = 0;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
count++;
}
}
return count;
}
int sumPrimes(int n) {
int sum = 0;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
sum += i;
}
}
return sum;
}
int main() {
int x;
cin >> x;
cout << countPrimes(x) << " " << sumPrimes(x) << endl;
return 0;
} (1).若将 isPrime(i)函数种的条件改为 i<=n/2,输入“20”时,countPrimes(20)的输出将变为“6”。( )
| A.正确 | B.错误 |
如果将 for(int i=2;i*i<=n;i++)改为 for(int i=2;i<=n;i++),输入“10”时,程序的输出( )
| A. 将不能正确计算 10 以内素数个数及其和 |
B. 仍然输出4和17 |
| C. 输出3和 10 |
D. 输出结果不变,但运行时间更短 |
当输入为“50”时,sumPrimes(50)的输出为( )
| A. 1060 |
B. 328 |
| C. 381 |
D. 275 |
sumPrimes 函数计算的是从 2 到 n 之间的所有素数之和。( )
| A.正确 | B.错误 |
当输入为“10”时,程序的第一个输出为“4”,第二个输出为“17”。( )
| A.正确 | B.错误 |
更新时间:2025-01-16 18:09:48
|
【知识点】
CCF非专业级别软件能力认证CSP-J/入门级
抱歉! 您未登录, 不能查看答案和解析点击登录











