关闭

伴随数组求亲和数::伴随数组

298人阅读 评论(0) 收藏 举报
分类:
int sum[5000000] = {0};

void InitSum()
{
    for(int i=1; 2*i <= 5000000; ++i)
    {
        int j = i+i;
        while(j <= 5000000)
        {
            sum[j] += i;
            j += i;
        }
    }
}

void GetQHNumber()
{
    InitSum();
    for(int j=1; j<=5000000; ++j)
    {
        int i = sum[j];
        if(i<= 5000000 && sum[i] == j && j<i)
        {
            cout << j << "  " <<  i << endl;
        }
    }
}


亲和数:sum(i)表示i 除i外的所有因数之和,  sum(i) = j , sum(j) = i;   i and  j 互为亲和数。

空间换时间的思想 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8573次
    • 积分:273
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:6篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论