清辞136 2022-11-16 16:07 采纳率: 50%
浏览 6

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

#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<b) 
                    cout<<a<<" 和 "<<b<<" 是一对亲密数。"<<endl;
    }
    return 0;

}

  • 写回答

2条回答 默认 最新

  • 於黾 2022-11-16 16:39
    关注

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

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 11月16日

悬赏问题

  • ¥15 报酬10000,做一个简单的换汇网站
  • ¥15 关于#vue.js#的问题:word excel和ppt预览问题语言-javascript)
  • ¥15 Apache显示系统错误3该如何解决?
  • ¥30 uniapp小程序苹果手机加载gif图片不显示动效?
  • ¥20 js怎么实现跨域问题
  • ¥15 C++dll二次开发,C#调用
  • ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
  • ¥15 Python easyocr无法顺利执行,如何解决?
  • ¥15 为什么会突然npm err!啊
  • ¥15 java服务连接es读取列表数据,服务连接本地es获取数据时的速度很快,但是换成远端的es就会非常慢,这是为什么呢