引言
友好数是指一个数等于除了它自身以外的所有数字的乘积之和,
本文旨在找出10000到99999之间的所有“友好数。
图列展示
- int ADD(int num) ——定义一个函数
ADD
,接受一个整数num
作为参数。 - int original = num;
int product = 1;
int sum = 0;初始化三个变量:
original
:存储原始数字,用于后续比较。product
:存储所有数字的乘积,初始值为1。sum
:存储所有数字的和,初始值为0。- while (num > 0) {
int digit = num % 10; // 获取当前最低位的数字
num /= 10; // 移除当前最低位的数字
sum += digit; // 将当前数字加到总和中
product *= digit; // 将当前数字乘到乘积中
} -
- 使用
while
循环,直到num
变为0。 - 在每次循环中,使用
%
操作符获取num
的最低位数字,并将其存储在digit
中。 - 使用
/=
操作符将num
除以10,从而移除最低位数字。 - 将
digit
加到sum
中,累加所有数字。 - 将
digit
乘到product
中,累乘所有数字。
- 使用
- product /= original; // 移除原始数——将
product
除以original
,从而移除原始数字,只保留其他数字的乘积。 - int main() {
for (int i = 10000; i <= 99999; i++) {
if (ADD(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
} - 使用
for
循环遍历10000到99999之间的所有数字。 - 对于每个数字
i
,调用ADD
函数检查是否满足友好数的条件。 - 如果满足条件(
ADD(i)
返回1),则打印该数字。 - 最后打印一个换行符。