根据任务要求,我们可以编写一个函数来计算给定数的因子之和,并在主函数中使用循环遍历区间 [2, 3000] 中的所有数,找出亲密数对。
以下是示例代码:
#include <stdio.h>
int getDivisorSum(int num) {
int sum = 1; // 因子之和初始化为1,包括因子1
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
sum += i;
if (i * i != num) { // 避免重复加入平方因子
sum += num / i;
}
}
}
return sum;
}
int main() {
for (int a = 2; a < 3000; a++) {
int b = getDivisorSum(a);
if (getDivisorSum(b) == a && a != b && a < b) {
printf("%d和%d是一组亲密数\n", a, b);
}
}
return 0;
}
在上述示例中,getDivisorSum() 函数用于计算给定数的因子之和。主函数 main() 使用循环遍历区间 [2, 3000] 中的所有数,并调用 getDivisorSum() 函数进行判断。若满足亲密数条件,则将其打印输出。
你可以将以上代码复制到编辑器中运行并查看结果。
内容由零声教学AI助手提供,问题来源于学员提问




