#401. CSP2023PJ-18
CSP2023PJ-18
- (阅读程序)
#include <iostream>
#include <cmath>
using namespace std;
int solve1(int n) {
return n * n;
}
int solve2(int n) {
int sum = 0;
for (int i = 1; i <= sqrt(n); i++) {
if (n % i == 0) {
if (n / i == i) { //第13行
sum += i * i; //第14行
} else {
sum += i * i + (n / i) * (n / i); //第16行
}
}
}
return sum;
}
int main() {
int n;
cin >> n;
cout << solve2(solve1(n)) << " " << solve1((solve2(n))) << endl;
return 0;
}
假设输入的 n 是绝对值不超过 1000 的整数,完成下面的判断题和单选题:
(判断题)
如果输入的 n 为正整数,solve2 函数的作用是计算 n 所有的因子的平方和。( )
{{ select(1) }}
- 对
- 错
第 13 - 14 行的作用是避免 n 的平方根因子(或 n/i)进入第 16 行而被计算两次。( )
{{ select(2) }}
- 对
- 错
如果输入的 n 为质数,solve2(n)的返回值为 n2 + 1。( )
{{ select(3) }}
- 对
- 错
(选择题)
(4分)如果输入的 n 为质数 p 的平方,那么 solve2(n)的返回值为( )
{{ select(4) }}
- p2 + p + 1
- n2 + n + 1
- n2 + 1
- p4 + 2p2 + 1
当输入正整数时,第一项减去第二项的差值一定( )
{{ select(5) }}
- 大于 0
- 大于等于 0 且不一定大于 0
- 小于 0
- 小于等于 0 且不一定小于 0
当输入为“5”时,输出为( )
{{ select(6) }}
- “651 625”
- “650 729”
- “651 676”
- “652 625”
相关
在下列比赛中: