题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
#include <cmath> #include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; int ans = 0; while(n-- > 2){ vector<int> vec; vec.push_back(1); for(int i = 2; i < sqrt(n); i++){ if(n % i == 0){ vec.push_back(i); vec.push_back(n / i); } } int x = sqrt(n); if(n % x == 0) vec.push_back(x); int sum = 0; for(int it : vec) sum += it; if(sum == n) ans++; } cout << ans << endl; return 0; }