C语言的关于亲密数对的问题

img


#include <stdio.h>
int main()
{
    int a, i, b, n;
    for (a = 6; a < 10000; a++) /*穷举3000以内的全部整数*/
    {
        for (b = 0, i = 1; i <= a / 2; i++) /*计算数a的各因子,各因子之和存放于b*/
            if (!(a % i))
                b += i;
        for (n = 0, i = 1; i <= b / 2; i++) /*计算b的各因子,各因子之和存于n*/
            if (!(b % i))
                n += i;
        if (n == a && a < b)              /*使每对亲密数只输出一次*/
            printf("(%d,%d)\n", a, b); /*若n=a,则a和b是一对亲密数,输出*/
    }

    return 0;
}

#include <stdio.h>
int main()
{
    int a, b, i, n;
    for (a = 6; a < 10000; a++)
    {
        b = 0;
        for (i = 1; i <= a / 2; i++)
        {
            if (a % i == 0)
                b += i;
        }
 
        n = 0;
        for (i = 1; i <= b / 2; i++)
        {
            if (b % i == 0)
                n += i;
        }
        if (n == a && a < b)
            printf("%d %d\n", a, b);
    }
 
    return 0;
}