如题:两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
一开始我看错题了,以为亲密数是两个因数之和相等的数,于是我们学校的oj就理所当然的显示“输出超出限制”,于是改了一下。不出所料超时了,我一开始写了三个for循环(一个在用来计算因数和的函数里,两个在把数字一一列举做对比)。
于是打算减少一个循环或者把循环改简单
改的第一版
#include <stdio.h>
int main()
{
int a, b, i, n;
for (a = 1; a <= 3000; a++)
{
for (b = 0, i = 1; i