c语言中,相亲数如何表达出所以因数
时间: 2024-10-11 12:12:35 浏览: 23
c语言题,从入门到精通
在C语言中,描述一个数字的所有因数通常需要用到循环和条件判断。相亲数(Amicable numbers),是指两个数相加得到另一个数,而这另外两个数又是彼此的因数之和。例如,6和28是一对相亲数,因为6+28=34,而34也是6和28的因数之和。
下面是一个简单的示例程序,用于找出给定整数的所有因数并检查是否存在一对相亲数:
```c
#include <stdio.h>
void findFactors(int num) {
int i, factors[100], count = 0;
for (i = 1; i <= num / 2; i++) {
if (num % i == 0) {
factors[count++] = i;
}
}
printf("因数: ");
for (int j = 0; j < count - 1; j++) {
printf("%d ", factors[j]);
}
printf("%d\n", factors[count - 1]);
// 检查是否有相亲数
int sumOfFactors = 0;
for (i = 0; i < count; i++) {
sumOfFactors += factors[i];
if (sumOfFactors == num && sumOfFactors != factors[i]) {
printf("发现一对相亲数: (%d, %d)\n", num, sumOfFactors);
break;
}
}
}
int main() {
int inputNum;
printf("请输入一个整数: ");
scanf("%d", &inputNum);
findFactors(inputNum);
return 0;
}
```
这个程序首先找出输入数字的所有因数,然后检查它们的和是否等于原数,并且除了自身外,和不等于任何一个因数,如果满足这些条件,则认为找到了一对相亲数。
阅读全文