标题:关于亲和数
取消只看楼主
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
结帖率:94.64%
已结贴  问题点数:18 回复次数:1 
关于亲和数
程序代码:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
int yueshu(int b)//求约数和
{
    int i=0,a=0,c;
    for(c=1;c<=b/2;c++)
    {
        if(b%c==0)
        {
            a+=c;
        }
    }
    return a;
}
void main()
{
    int a=0,i,j;
    int y[2000];
    for(i=0;i<=2000;i++)
    {
        //x[i]=i;
        y[i]=yueshu(i);
    }
    for(i=0;i<=2000;i++)
        for(j=0;j<=2000;j++)
    {
            if(i==y[j]&&j==y[i]&&i!=j)
            {
                if(a!=i)
                cout<<i<<""<<j<<"是一对亲和数"<<endl;
                a=j;
            }
    }
}
请问为何输出的是
220 284
1184 1210
2000 1780  这最后个数据是怎么回事,谢谢
搜索更多相关主题的帖子: color 
2012-04-29 16:58
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
得分:0 
回复 2楼 tongzhipeng
我也用了标准C++试过了,还是输出那个多余的数,我发现在主函数中int a,i,j;和int i,j,a;输出结果不同,前者会输出多余数据,后者不会,这是怎么回事啊?我有次提到一个问题,有人和我说C和C++一起用不是好习惯,这又是为什么啊?我觉得C的输出比C++简单点。
2012-05-02 23:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-366722-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.121698 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved