用函数求亲密数,想问一下为啥不对

#include
using namespace std;

int yinziSum(int a) /求a的因子和/
{ int sum = 0;
int k = 0;

    /**********Program**********/  
    for(int i = 1; i <= a / 2; i ++)
    {
            
            if(a % i == 0)
            {
                    sum += i;
            }
    } 
    for(int j = 1; j <= sum / 2; j ++)
    {
         if(sum % j == 0)
        {
                    k += j;
        }

    }   
   return k ;
    /**********Program**********/                

}

int main()
{
int a,b;

    for(a= 220 ;a<3000;a++) 
    { 
            b=yinziSum(a);
            if (a == b&&a" 和 "<" 是一对亲密数。"<0;

}

sum就已经是因子和了,你又循环一遍是要作甚
yinziSum本身就是用来求因子和的,你不要画蛇添足的老想一步到位
你要看调用它的时候到底是怎么调用的
写多了反而错了