一问题描述

如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。

二设计思路

首先输入取值范围然后再在循环中分别设立两层求因子和然后再比较是否相等。

三程序流程图

 

 

四伪代码实现

#include<iostream>
using namespace std;
int main(){
int x,i=2,j=2;
cin>>x;
for(int i=2;i<=x;i++){
int y=0;
for(int m=1;m<i;m++){
if(i%m==0){
y=y+m;
}
}
for(int j=2;j<=x;j++){
int z=0;
for(int n=1;n<j;n++){
if(j%n==0){
z=z+n;
}
} if(z==i&&y==j&&i!=j&&j<i){
cout<<i<<" "<<j<<endl;
}
}
}
}

五代码实现