大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > Java技巧 > 求解500万以内的亲和数

求解500万以内的亲和数

关键词:亲和数求解500万以内的亲和数  阅读(706) 赞(19)

[摘要]本文主要是对求解500万以内的亲和数的讲解,希望对大家学习求解500万以内的亲和数有所帮助。

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

  #include <IOSTREAM>

  using namespace std;

  #define MAXVAl 5000000

  int 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;

  }



相关评论