找亲密对数

来源:互联网 发布:照片数字识别软件 编辑:程序博客网 时间:2024/06/06 02:26
/*2.第四章:找出亲密对数【问题描述】求数n之内的亲密对数。所谓“亲密对数”,即A的所有因子(包含1但不包含其本身)之和等于B,而B的所有因子之和等于A。【输入形式】            某个数字n。【输出形式】     此数字n之内的亲密对数。【样例输入】                400【样例输出】             220 284【样例说明】输出结果每行输出一对亲密数,剔除重复的,按每行第一个数的大小排序。*/#include<iostream>using namespace std;int factors(int);int main(){    int sum, n;    cin>>n;    for(int a=2;a<n;a++)    {        sum=factors(a);        if((a==factors(sum))&&a<sum)                   //调用了两次factors()函数,先求a的因子和sum,在求sum的因子和         {            cout<<a<<" "<<sum<<endl;        }    }    return 0;}//定义一个求因子和的函数 int factors(int b){    int s=b/2;                //找因子只需要判断到一半,另外一半只是在重复     int sum=0;    for(int i=1;i<=s;i++)     //包括1但不包括本身     {        if(b%i==0)        sum+=i;    }    return sum;              //返回因子和 }

运行截图

原创粉丝点击