判断题

#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){

                sum+=i*i;

            }else{

                sum+=i*i+(n/i)*(n/i);

            }

        }

    }

    return sum;

}

int main(){

    int n;

    cin>>n;

    cout<<solve2(solve1(n))<<" "<<solve1((solve2(n)))<<endl;

    return 0;

}

假设输入的n是绝对值不超过1000的整数,

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

A 正确
B 错误
赣ICP备20007335号-2