#401. CSP2023PJ-18

CSP2023PJ-18

  1. (阅读程序)
#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”