0904每日一练

每日一练


一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6 = 1 + 2 + 3。找出1000以内的所有完数?
拆解问题:
1、要知道一个数的因子都有哪些
2、因子求和
3、和与原数比较 是否相等

解决问题:
1、取余、循环
2、循环中拿出因子叠加
3、把加完的和与原数 判断

遇到的问题:
在双层循环中各种输出逻辑,拿到输出值之后思考为什么会这么输出,为什么没有得到想要的值,反复琢磨实现逻辑

代码:

#include<iostream>

using namespace std;

void get_number()
{
	for (int num = 2; num <= 1000; num++)
	{
		int sum = 0;
		for (int i = 1; i <= (num / 2); i++)
		{
			if (num % i == 0)
			{
				//cout << i <<"  ";
				sum += i;
				//cout << sum << endl;
			}
		}
		if (sum == num)
		{
		cout << sum << endl; //"(完数)==================================" << endl;
		}
	}

}
int main()
{
	cout << "1000以内的完数有:" << endl;
	get_number();
	system("pause");
	return 0;
}

OK,这就是今天的每日一练啦,前几日的每日一练有点忙,太瓜皮了,没咋做好,就暂时没有分享。下次一定!!!

猜你喜欢

转载自blog.csdn.net/guo_xyx/article/details/108407326
今日推荐