阅读程序回答问题:
假设输入的 n 是绝对值不超过 1000 的整数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #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; } |
0 of 6 Questions completed
Questions:
You have already completed the quiz before. Hence you can not start it again.
Quiz is loading…
You must sign in or sign up to start the quiz.
You must first complete the following:
0 of 6 Questions answered correctly
Your time:
Time has elapsed
You have reached 0 of 0 point(s), (0)
Earned Point(s): 0 of 0, (0)
0 Essay(s) Pending (Possible Point(s): 0)
1、如果输入的 n 为正整数,solve2
函数的作用是计算 n 所有的因子的平方和( )
2、第 11∼12 行的作用是避免 n 的平方根因子i(或 n/i )进入第 14 行而被计算两次( )
3、如果输入的 n 为质数,solve2(n)
的返回值为n^2+1( )
4、如果输入的 n 为质数 p 的平方,那么 solve2(n)
的返回值为( )
5、当输入为正整数时,第一项减去第二项的差值一定( )
6、当输入为 5
时,输出为( )