这题的关键是对于完全数的判断,减少不必要的计算: 判断整数n是不是完全数的时候,当i能被n整除,n/i也能被n整除,相当于一次性得到两个约数,那么在判断出i是约数的时候可以在约数和sum里面同时加上i和n/i; 设置循环的上限max,当判断到i是约数的时候,那么比n/i大的数在前面判断中已经有结论,可以将上限设为n/i。 #include<bits/stdc++.h> using namespace std; bool isComplete(int n) { int s...