top1编程
← 返回题目
题解

【入门】友好数

1 条题解

  • 0
    @ 2026-7-29 0:17:53
    #include <iostream>
    using namespace std;
    
    // 计算 n 的所有约数(不包括 n 本身)之和
    int getDivisorSum(int n) {
        int sum = 0;
        for (int i = 1; i < n; ++i) {
            if (n % i == 0) {
                sum += i;
            }
        }
        return sum;
    }
    
    int main() {
        int a, b;
        cin >> a >> b;
    
        int sum_a = getDivisorSum(a);
        int sum_b = getDivisorSum(b);
    
        if (sum_a == b && sum_b == a) {
            cout << "yes" << endl;
        } else {
            cout << "no" << endl;
        }
    
        return 0;
    }
    
    • 1