不是VIP会员,不能显示答案

题目解答

题目:
#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”。( )

2) 若将isPrime(i)函数种的条件改为i<=n/2,输入“20”时,countPrimes(20)的输出将变为“6”( )

3) sumPrimes函数计算的是从2到n之间的所有素数之和( )


选择题

4) 当输入为“50”时,sumPrimes(50)的输出为( )

5) 如果将for(int i=2; i*i<=n; i++)改为for(itn i=2; i<=n; i++),输入“10”时,程序的输出( )
考点:
分析:
解答:
评论:
老师: