01 #include <iostream>
02 #include <cmath>
03 using namespace std;
04
05 int solve1(int n){
06 return n*n;
07 }
08
09 int solve2(int n){
10 int sum=0;
11 for(int i=1;i<=sqrt(n);i++){
12 if(n%i==0){
13 if(n/i==i){
14 sum+=i*i;
15 }else{
16 sum+=i*i+(n/i)*(n/i);
17 }
18 }
19 }
20 return sum;
21 }
22
23 int main(){
24 int n;
25 cin>>n;
26 cout<<solve2(solve1(n))<<" "<<solve1((solve2(n)))<<endl;
27 return 0;
28 }
假设输入的n是绝对值不超过1000的整数,完成下面的判断题和单选题。
如果输入的n为正整数,solve2函数的作用是计算n所有的因子的平方和( )
第13~14行的作用是避免n的平方根因子i(或n/i)进入第16行而被计算两次( )
如果输入的n为质数,solve2(n)的返回值为n2+1( )
如果输入的n为质数p的平方,那么solve2(n)的返回值为( )
p2+p+1
n2+n+1
n2+1
p4+2p2+1
当输入为正整数时,第一项减去第二项的差值一定( )
大于0
大于等于0且不一定大于0
小于0
小于等于0且不一定小于0
当输入为“5”时,输出为( )
"651.625"
"650.729"
"651.676"
"652.625"
发表评论