时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
自然数a的因子是指能整除a的所有自然数,但不含a本身。例如12的因子为:1,2,3,4,6。若自然数a的因子之和为b,而且b的因子之和又等于a,则称a,b为一对“亲和数” 。求最小的一对亲和数(a<>b)。
【输入】
(无)
【输出】
1行,分别为a和b(a<b)。
【输入样例】
(无)
【输出样例】
(无)
【解题代码】
#include <iostream>
using namespace std;
int factor(int x){ //判断一个数的因子之和是多少
int s=0;
for(int i=1;i<x;i++){
if(x%i==0){
s+=i;
}
}
return s;
}
int main() {
int b;
for(int a=1; ;a++){
b=factor(a);
if(factor(a)==b && factor(b)==a && a!=b){ //a的因子之和为b,b的因子之和等于a,且a<>b
if(a<b) cout<<a<<" "<<b<<endl;
else cout<<b<<" "<<a<<endl;
return 0;
}
}
return 0;
}