21xrx.com
2025-03-14 11:55:29 Friday
文章检索 我的文章 写文章
C++编程:求解400以内的亲密数对
2023-07-13 22:10:14 深夜i     22     0
C++ programming 亲密数对 400 求解

在数学中,两个数如果每一个数的因数和等于另一个数,则称这两个数是亲密数对。C++编程可以帮助我们快速求解出400以内的所有亲密数对。

首先,我们需要定义一个函数来计算一个数的因数和。这个函数需要接收一个整数作为参数,并返回这个整数的因数和。

下面是计算因数和的函数代码:

int factors_sum(int x) {
  int sum = 0;
  for(int i = 1; i <= x/2; i++) {
    if (x % i == 0) {
      sum += i;
    }
  }
  return sum;
}

接下来,我们需要编写一个函数,用来查找两个数是否是亲密数。

下面是查找亲密数对的函数代码:

bool is_amicable(int a, int b) {
  return factors_sum(a) == b && factors_sum(b) == a;
}

最后,我们需要编写主函数:

int main() {
  for(int i = 1; i <= 400; i++) {
    for(int j = i+1; j <= 400; j++) {
      if(is_amicable(i, j))
        cout << i << " 和 " << j << " 是亲密数对" << endl;
      
    }
  }
  return 0;
}

主函数会遍历所有400以内的整数,并判断它们是否是亲密数对。如果是,就打印出来。

运行程序,我们可以得到以下输出:

220 和 284 是亲密数对

在400以内,只有220和284是亲密数对。这个程序可以扩展到更大的数字,只需要修改主函数中的循环范围即可。

  
  

评论区