21xrx.com
2025-03-27 16:44:35 Thursday
文章检索 我的文章 写文章
C++实现亲密数对判断
2023-07-02 03:13:41 深夜i     46     0
C++ 亲密数对 实现 判断 算法

亲密数对是指两个正整数中,彼此都是对方所有因数之和的数,例如220和284就是一对亲密数对。本文将介绍如何用C++语言判断亲密数对。

首先,需要编写一个函数用于计算某个正整数的所有因数之和,如下所示:

int sumFactor(int n) {
  int sum = 0;
  for (int i = 1; i < n; i++) {
    if (n % i == 0) {
      sum += i;
    }
  }
  return sum;
}

该函数采用循环的方式计算n的所有因数之和,并返回这个和。

接下来,需要编写一个函数用于判断两个正整数是否为亲密数对,如下所示:

bool isAmicable(int a, int b) {
  if (sumFactor(a) == b && sumFactor(b) == a && a != b)
    return true;
  
  return false;
}

该函数先分别计算a和b的所有因数之和,如果a的因数之和等于b且b的因数之和等于a,并且a不等于b,就说明a和b是一对亲密数对,返回true,否则返回false。

最后,在主函数中调用isAmicable函数判断两个正整数是否为亲密数对,如下所示:

int main() {
  int a, b;
  cin >> a >> b;
  if (isAmicable(a, b))
    cout << "Yes" << endl;
   else
    cout << "No" << endl;
  
  return 0;
}

该程序先从标准输入读入两个正整数a和b,然后调用isAmicable函数判断它们是否为亲密数对,最终输出判断结果。

通过以上步骤,用C++语言实现亲密数对判断就完成了。这个程序可以帮助你快速判断任意两个正整数是否为亲密数对,同时也可以巩固你对C++函数的基本应用。

  
  

评论区