早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一道编程题如果a的真因子和等于b,b的真因子和等于a,且ab,则称a,b为亲密数对,问1~10000间第一对亲密数对的和是多少。(真因子是指不包含该数本身的因子),在线坐等大神如果a的真因子和

题目详情
一道编程题
如果a的真因子和等于b,b的真因子和等于a,且a<>b,则称a,b为亲密数对,问1~10000间第一对亲密数对的和是多少。(真因子是指不包含该数本身的因子),在线坐等大神
如果a的真因子和等于b,b的真因子和等于a,且a<>b,则称a,b为亲密数对,问1~10000间第一对亲密数对的和是多少。(真因子是指不包含该数本身的因子),在线坐等大神
▼优质解答
答案和解析
int calculateRealFactorSummary(int a)
{
int b = 2;
int c;
c = a / 2;

int sum = 0;
while (b <= c) {
if (a % b == 0) {
//b以及a/b的值为真因子
sum += b + a/b;
}
b++;
c = a/b;
}
return sum;
}
int main(int argc, const char * argv[]) {
for (int i = 10; i < 10000; i++) {
int b = calculateRealFactorSummary(i);
int c = calculateRealFactorSummary(b);
if (i == c) {
printf("%d -- %d",i, b);
printf("sum = %d",i+b);
break;
}
}
return 0;
}