#4373. 2024CSP/J-程序阅读
2024CSP/J-程序阅读
#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、
当输入为“10”时,程序的第一个输出为“4”,第二个输出为“17”。( )
{{ select(1) }}
- 是
- 否
2、
若将 isPrime() 函数中的条件改为 i*i<=n/2,输入“20”时,countPrimes(20) 的输出将变为“6”。( )
{{ select(2) }}
- 是
- 否
3、
sumPrimes 函数计算的是从 2 到 n 之间的所有素数之和。( )
{{ select(3) }}
- 是
- 否
单选题
4、
当输入为“50”时,sumPrimes(50) 的输出为( ) {{ select(4) }}
- 1060
- 328
- 381
- 275
5、
如果将 for (int i = 2; i * i <= n; i++) 改为 for (int i = 2; i <= n; i++),输入 “10” 时,程序的输出( )。
{{ select(5) }}
- 将不能正确计算 10 以内素数个数及其和
- 仍然输出 “4” 和 “12”
- 输出 “3” 和 “10”
- 输出结果不变,但运行时间更短