【题目链接】

ybt 1154:亲和数
a<>b的意思是a不等于b

【题目考点】

1. 因子

自然数a的因子是指能整除a的所有自然数,但不含a本身

2. 函数

【解题思路】

设函数求一个数字的因子之和
从1开始遍历每个整数a,求其因子之和b,如果a不等于b且b的因子之和与a相同,则a是亲和数。

【题解代码】

解法1:
#include<bits/stdc++.h>
using namespace std;
//求数字n的因子之和 
int sum(int n)
{
	int s = 0;
	for(int i = 1; i < n; ++i)
		if(n % i == 0)
			s += i;
	return s;
}
int main()
{
	int a, b;
    for(int i = 2; true; ++i)
    {
    	a = i;
    	b = sum(a);
    	if(a != b && a == sum(b))
    	{
    		if(a < b)//输出a和b,根据题目要求,先输出小的数字,再输出大的数字 
    			cout << a << ' ' << b;
    		else
    			cout << b << ' ' << a;
			break;
    	}
	}
	return 0;
}
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐