函数
程序员文章站
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 ;
上一篇: 232. 用栈实现队列