Amicable Pair Number in Java

2025年5月6日 | 阅读4分钟

在本节中,我们将学习什么是亲和数,并创建Java 程序来检查给定数字是否是亲和数亲和数程序经常在 Java 编码测试和学术界出现。

亲和数

亲和数是指两个不同的数字(一对数字),它们之间存在这样的关系:一个数字的真约数(不包括数字本身)之和等于另一个数字。一个数字的真约数是指除了该数字本身之外的所有约数。它也被称为友好数

第一个数字的约数之和 = 第二个数字的约数之和
第二个数字的约数之和 = 第一个数字的约数之和

最小的亲和数对是(220, 284)。因为

220 的约数有:1, 2, 4, 5, 10, 11, 20, 22, 44, 55, and 110

220 的约数之和 = 284

284 的约数有:1, 2, 4, 71, 142

284 的约数之和 = 220

我们观察到第一个数字的约数之和等于第二个数字,第二个数字的约数之和等于第一个数字。因此,给定的对 (220, 284) 是一个亲和对。

亲和数示例

数字对第一个数字的约数第一个数字的约数之和第二个数字的约数第二个数字的约数之和亲和/非亲和
220, 2841, 2, 4, 5, 10, 11, 20, 22, 44, 55, 1102841, 2, 4, 71, 142220亲和
1184, 12101, 2, 4, 8, 16, 32, 37, 74, 148, 296, 59212101, 2, 5, 10, 11, 22, 55, 110, 121, 242, 6051184亲和
2620, 29241, 2, 4, 5, 10, 20, 131, 262, 524, 655, 131029241, 2, 4, 17, 34, 43, 68, 86, 172, 731, 14622620亲和
5020, 55641, 2, 4, 5, 10, 20, 251, 502, 1004, 1255, 251055641, 2, 4, 13, 26, 52, 107, 214, 428, 1391, 27825020亲和
6232, 63681, 2, 4, 8, 19, 38, 41, 76, 82, 152, 164, 328, 779, 1558, 311663681, 2, 4, 8, 16, 32, 199, 398, 796, 1592, 31846232亲和

其他一些亲和数对是 (10744, 10856), (12285, 14595), (17296, 18416), (63020, 76084), and (66928, 66992)。

查找亲和数的步骤

  1. 从用户那里读取或初始化两个数字(N1, N2)。
  2. 找到两个数字的约数(divOfN1, divOfN2)。
  3. 找到两个数字的约数之和(sumdiv1, sumdiv2)。
  4. 检查一个数字的约数之和是否等于另一个数字。
    • 如果相等,则数字对是亲和的。
    • 否则,不是亲和的。

让我们在 Java 程序中实现上述步骤。

亲和数 Java 程序

逻辑非常简单。首先,我们将两个数字的约数之和进行比较,然后比较其中一个数字的约数之和是否等于另一个数字。

AmicableNumberExample1.java

输出 1

Enter the first number: 5020
Enter the second number: 5564
5020, 5564 are amicable numbers.

输出 2

Enter the first number: 12
Enter the second number: 45
12, 45 are not amicable numbers.

让我们创建一个使用不同逻辑的另一个 Java 程序。

AmicableNumberExample2.java

输出 1

Enter the first number: 220
Enter the second number: 284
The pair of numbers are amicable.

输出 2

Enter the first number: 60
Enter the second number: 84
The pair of numbers are not amicable.