求解500万以内的亲和数

来源:互联网 发布:正义联盟 删减 知乎 编辑:程序博客网 时间:2024/04/29 08:10

代码来自《编程艺术系列》

这段代码很优雅、很有内涵,如下:

#include <iostream>using namespace std;#define MAXVAl 5000000int sum[MAXVAl+1];int main(int argc, char* argv[]){int i, j;for(i = 0; i <= MAXVAl; i++){sum[i] = 1;}for(i = 2; i+i <= MAXVAl; i++){j = i + i;while(j <= MAXVAl){sum[j] += i;j += i;}}for(i = 0; i <= MAXVAl; i++){if(sum[i] > i && sum[i] <= MAXVAl && sum[sum[i]] == i){cout << i << " " << sum[i] << endl;}}return 0;}


 

0 0
原创粉丝点击