#4374. 2023CSP/J-程序阅读

2023CSP/J-程序阅读

#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;
}

判断题 1、

如果输入的 n 为正整数,solve2 函数的作用是计算 n 所有的因子的平方和。( )

{{ select(1) }}


2、

第 13-14 行的作用是避免n的平方根因子 i(或 n/i)进入第 16 行而被计算两次。( )

{{ select(2) }}


3、

如果输入的n为质数,solve2(n) 的返回值为 n^2+1( )

{{ select(3) }}


单选题

4、

如果输入的 n 为质数 p 的平方,那么solve2(n) 的返回值为( )。 {{ select(4) }}

  • p^2+p+1
  • n^2+n+1
  • n^2+1
  • p^4+2p^2+1

5、

当输入为正整数时,第一项减去第二项的差值一定( )。

{{ select(5) }}

  • 大于 θ
  • 大于等于 θ 且不一定大于 θ
  • 小于 θ
  • 小于等于 θ 且不一定小于 θ

6、

当输入为“5”时,输出为( )。

{{ select(6) }}

  • “651 625”
  • “650 729”
  • “651 676”
  • “652 625”