21xrx.com
2024-12-22 16:44:18 Sunday
登录
文章检索 我的文章 写文章
C++程序:求亲密数
2023-07-13 01:51:13 深夜i     --     --
C++ 亲密数 数学运算 循环 条件判断

亲密数是指两个正整数中,一个数的所有因子之和(不含自身)等于第二个数,且第二个数的所有因子之和(不含自身)等于第一个数。例如,220和284就是一对亲密数,因为220的因子之和(1+2+4+5+10+11+20+22+44+55+110)等于284,而284的因子之和(1+2+4+71+142)等于220。

本文介绍一种用C++程序求亲密数的方法。我们可以先定义一个函数isAmicableNumber,用于检查两个数是否为亲密数。该函数首先计算出两个数的因子之和,然后进行比较。如果是亲密数,则返回true,否则返回false。

接下来,我们可以在主函数中输入两个正整数,然后调用isAmicableNumber函数进行判断。如果是亲密数,则输出“是亲密数”,否则输出“不是亲密数”。代码如下:

#include

using namespace std;

bool isAmicableNumber(int a, int b) {

  int sumA = 0, sumB = 0;

  for (int i = 1; i < a; i++) {

    if (a % i == 0) {

      sumA += i;

    }

  }

  for (int i = 1; i < b; i++) {

    if (b % i == 0) {

      sumB += i;

    }

  }

  if (sumA == b && sumB == a)

    return true;

  return false;

}

int main() {

  int a, b;

  cout << "请输入两个正整数:";

  cin >> a >> b;

  if (isAmicableNumber(a, b))

    cout << "是亲密数" << endl;

   else

    cout << "不是亲密数" << endl;

  return 0;

}

该程序可以判断任意两个正整数是否为亲密数,其中isAmicableNumber函数可用于其它程序中。该函数可用于寻找亲密数、判断两个数字是否相连等。除了C++,其它编程语言也可用类似的方式实现求亲密数的功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复