C++信奥赛题目 1154:亲和数

1154:亲和数


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 41239     通过数: 24946

【题目描述】

自然数a的因子是指能整除a的所有自然数,但不含a本身。例如12的因子为:1,2,3,4,6。若自然数a的因子之和为b,而且b的因子之和又等于a,则称a,b为一对“亲和数” 。求最小的一对亲和数(a<>b)。

【输入】

(无)

【输出】

1行,分别为a和b(a<b)。

 

 

 

#include <iostream>
#include "a.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

int getdata(int num){
	int sum=0;
	for (int i=1;i<num;i++){
		if(num%i==0){
			sum+=i;
		}
	}
	return sum;
}

int main() {	//end line
	
	for(int a=4;a<10000;a++){
		int b=getdata(a);
		int sum=getdata(b);
		if(b!=1 && sum!=1 && a!=b){
			
			if(sum==a){
				cout<<a<<"的因子之和是:"<<b<<"--的因子之和是"<<sum<<endl;
				cout<<"******************"<<endl;
				break;
			}
		}
		
		
	}
	
}

posted @ 2023-01-31 17:45  童心少年  阅读(416)  评论(0编辑  收藏  举报