欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

函数

程序员文章站 2022-07-11 08:22:13
...

1154:亲和数http://ybt.ssoier.cn:8088/problem_show.php?pid=1154

这道题的关键在于一句话:若自然数a的因子之和为b,而且b的因子之和又等于a;

//亲和数
#include<iostream>
using namespace std;
int IsAmicable(int n);
int main(){
    int sum_a,sum_b;
    for(int i=1;i<500;i++){
       sum_a=IsAmicable(i);
       sum_b=IsAmicable(sum_a);
       if(sum_b==i&&i!=sum_a){   //i!=sum_a  这不加即错
           cout<<i<<" "<<sum_a;
           break;
       }
    }
    return 0;
}
//a的因子之和是b  b的因子之和是a
int  IsAmicable(int n){
    int sum=0;
    for(int i=1;i<n;i++){
        if(n%i==0){
            sum+=i;
        }
    }
    return sum;
}

由于题目条件,a<b,需要条件i!=sum_a  ;