私信TA

用户名:uq_26667239983

访问量:2272

签 名:

知识大海里的浪者

等  级
排  名 1400
经  验 2850
参赛次数 0
文章发表 107
年  龄 18
在职情况 学生
学  校 湖南理工学院
专  业 软件工程

  自我简介:

解题思路:

注意事项:

参考代码:

#include<iostream>


using namespace std;


//这里是求一个数的因子之和

//注意的是,它包括 1 ,但不包括本身

int sushu(int x)

{

int sum = 0;

for (int i = 1; i < x; i++)

{

if (x % i == 0)

sum += i;

}

return sum;

}



int main()

{

// j 的作用是记录第一个亲密数中的b

//如果把它删去,你就会发现你输出的结果是案例的两倍

//多出来的一倍只是顺序上反过来了而已

// j 的作用就是保证不重复输出

int j = 0;

for (int i = 1; i <= 3000; i++)

{

int s1 = sushu(i);//s1 相当于亲密数中的 b 

int s2 = sushu(s1);// s2 相当于亲密数中的 a,当然啦, i 的值也相当于亲密数中的 a 啦!


//判断条件的话,解释起来太长了

// 最好的办法就是,你每次删除一个不同的条件,看看输出的结果是什么就知道啦!

if (s2 == i && s1 != i&&i!=j)

{

j = s1;

cout << "(" << i << "," << s1 << ")";

}

}

return 0;

}


 

0.0分

0 人评分

  评论区