#include<iostream> #include<vector> #include<algorithm> #include<string> #include<climits> #include<cmath> #include<unordered_map> using namespace std; int solve(int num) { int sum = 0; for (int i = 2; i < sqrt(num); i++) { if (num % i == 0) { sum += i; sum += num / i; } } return sum + 1; } int main() { int m, n; cin >> m >> n; if (m > n) swap(m, n); for (int a = m; a <= n; a++) { //a与b是否为亲密数 int b = solve(a); //直接先使 b = a的因数和 if (a >= b) continue; int sumb = solve(b); //b的因数和 if (sumb <= n && sumb == a) { //b的因数和 = a cout << a << " " << b << endl; } } } |
Double click to view unformatted code.