找2-1000中的亲密数对

找2-1000 中的亲密数对(如果a的因子和等于b,b的因子和等于a,且a不等于b,则称a,b为亲密数对)
C语言的题目

#include <stdio.h>

int sum_of_divisors(int num) {
    int sum = 0;
    for (int i = 1; i <= num / 2; i++) {
        if (num % i == 0) {
            sum += i;
        }
    }
    return sum;
}

int main() {
    int a, b;
    for (a = 2; a <= 1000; a++) {
        b = sum_of_divisors(a);
        if (a != b && sum_of_divisors(b) == a) {
            printf("%d和%d是亲密数对\n", a, b);
        }
    }
    return 0;
}


sum_of_divisors 函数计算一个数的因子和,main 函数则在 2 到 1000 的范围内依次检查每个数和其因子和是否满足亲密数对的条件,如果满足则输出这对亲密数。