输入两个正整数(大于1并且在int的表示范围之内),分别计算它们所有因数之和(除了自身之外的因数),并判断它们是否是一对相亲数。C语言
时间: 2024-06-01 07:12:53 浏览: 113
C语言程序设计-计算并输出给定整数n的所有因子之和(不包括1与自身);注意:n的值不大于1000.c
5星 · 资源好评率100%
开发的ChitGPT:
输入两个正整数,计算它们所有因数之和并判断是否是一对相亲数的代码如下:
#include <stdio.h>
int main() {
int num1, num2, sum1 = 0, sum2 = 0;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
for (int i = 1; i < num1; i++) {
if (num1 % i == 0) {
sum1 += i;
}
}
for (int j = 1; j < num2; j++) {
if (num2 % j == 0) {
sum2 += j;
}
}
if (sum1 == num2 && sum2 == num1) {
printf("%d 和 %d 是相亲数。\n", num1, num2);
} else {
printf("%d 和 %d 不是相亲数。\n", num1, num2);
}
return 0;
}
当然,相亲数的判断也可以用函数实现,代码如下:
#include <stdio.h>
int factor_sum(int num) {
int sum = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum;
}
int are_amicable(int num1, int num2) {
if (factor_sum(num1) == num2 && factor_sum(num2) == num1) {
return 1;
} else {
return 0;
}
}
int main() {
int num1, num2;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
if (are_amicable(num1, num2)) {
printf("%d 和 %d 是相亲数。\n", num1, num2);
} else {
printf("%d 和 %d 不是相亲数。\n", num1, num2);
}
return 0;
}
阅读全文