day 23 亲密数

1.从1开始遍历到给定上限,此时数记为M;
2.有数M,由循环去遍历每一个小于M的数,并由sum记录;
3.对sum,由循环去遍历每一个小于sum的数,并由flag记录;
4.满足flag==M&&M<sum,输出M,sum;

#include<iostream>
using namespace std;
int main(){
int Max,sum,flag;
printf("请输入上限数:");
cin>>Max;
for(int M=1;M<=Max;M++){
sum=0;
for(int i=1;i<M;i++){
if(M%i==0){sum+=i;}
}
flag=0;
for(int i=1;i<sum;i++){
if(sum%i==0){flag+=i;}
}
if(flag==M&&M<sum){printf("%d和%d是亲密数\n",M,sum);}
}
return 0;
}

浙公网安备 33010602011771号