现在的位置: 首页 > 综合 > 正文

【北理工研究生复试上机题】完数和盈数

2012年12月18日 ⁄ 综合 ⁄ 共 484字 ⁄ 字号 评论关闭

一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1,则称其为“完数”;
若因子之和大于该数,则称其为“盈数”。求出2 到60 之间所有“完数”和“盈数”,并以如

下形式输出: E: e1 e2 e3 ......(ei 为完数) G: g1 g2 g3 ......(gi 为盈数)

#include <iostream>
#include <numeric>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;

int main()
{
	cout<<"E:";
	int s;
	for(int i=2;i<=60;i++)
	{
		s=0;
		for(int j=1;j<i;j++)
		{
			if(i%j==0)
			{
				s+=j;
			}
		}
		if(s==i)
		{
			cout<<i<<" ";
		}

	}
	cout<<endl;

	cout<<"G:";
	for(int i=2;i<=60;i++)
	{
		s=0;
		for(int j=1;j<i;j++)
		{
			if(i%j==0)
			{
				s+=j;
			}
		}
		if(s>i)
		{
			cout<<i<<" ";
		}

	}


	system("pause");
	return 0;
}

抱歉!评论已关闭.