1997 Problem E 完數與盈數

問題 E: 完數與盈數

時間限制: 1 Sec  內存限制: 32 MB

題目描述

一個數如果恰好等於它的各因子(該數本身除外)子和,如:6=3+2+1,則稱其爲“完數”;

若因子之和大於該數,則稱其爲“盈數”。求出2 到60 之間所有“完數”和“盈數”,並以如

下形式輸出: E: e1 e2 e3 ......(ei 爲完數) G: g1 g2 g3 ......(gi 爲盈數)

輸入

輸出

按描述要求輸出(注意EG後面的冒號之後有一個空格)。

經驗總結

基礎題~~按照題目要求來就行啦~

AC代碼

#include <cstdio>
int main()
{
	int w[60],y[60],m=0,n=0;
	for(int i=2;i<=60;i++)
	{
		int sum=0;
		for(int j=1;j<i;j++)
			if(i%j==0)
				sum+=j;
		if(sum==i)	w[m++]=i;
		else if(sum>i)	y[n++]=i;
	}
	printf("E: ");
	for(int i=0;i<m;i++)
		printf("%d ",w[i]);
	printf("G: ");
	for(int i=0;i<n;i++)
	{
		printf("%d",y[i]);
		if(i!=n-1)
			printf(" ");
		else
			printf("\n");
	}
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章