使用java编写程序,输入两个正整数,分别计算他们的所有因数之和,并判断它们是否一对相亲数
时间: 2024-12-19 22:17:27 浏览: 2
在Java中,编写一个程序来计算两个正整数的所有因数之和并检查它们是否是一对“相亲数”(即两数之和等于其最大公约数),你可以按照以下步骤操作:
首先,创建一个函数来计算一个数的因数之和:
```java
public static int factorSum(int num) {
int sum = 0;
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum;
}
```
然后,创建另一个函数来计算两个数的最大公约数(GCD):
```java
import java.util.Scanner;
public static int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
```
最后,在主函数中获取用户输入、计算因数之和以及检查是否为相亲数:
```java
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个正整数:");
int num1 = scanner.nextInt();
System.out.println("请输入第二个正整数:");
int num2 = scanner.nextInt();
int sum1 = factorSum(num1);
int sum2 = factorSum(num2);
// 检查是否为相亲数
int gcdValue = gcd(sum1, sum2);
boolean areConjugal = gcdValue == num1 + num2;
System.out.printf("数字%d的因数和为:%d\n", num1, sum1);
System.out.printf("数字%d的因数和为:%d\n", num2, sum2);
if (areConjugal) {
System.out.println("这两个数是一对相亲数(它们的因数和相等)");
} else {
System.out.println("这两个数不是相亲数(它们的因数和不相等)");
}
scanner.close();
}
```
运行这个程序,输入两个正整数,它会计算因数之和并判断它们是否为一对相亲数。
阅读全文