1783 Problem A 完數

問題 A: 完數

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

題目描述

    求1-n內的完數,所謂的完數是這樣的數,它的所有因子相加等於它自身,比如6有3個因子1,2,3,1+2+3=6,那麼6是完數。即完數是等於其所有因子相加和的數。

輸入

    測試數據有多組,輸入n,n數據範圍不大。

輸出

    對於每組輸入,請輸出1-n內所有的完數。如有案例輸出有多個數字,用空格隔開,輸出最後不要有多餘的空格。

樣例輸入

6

樣例輸出

6

經驗總結

因爲完數本身就很少,所以可以直接存儲,然後根據輸入的n,按順序輸出不大於n的所有完數即可~~

AC代碼

#include <cstdio>
int main()
{
	int a[8]={6,28,496,8128,33550336,0},n;
	while(~scanf("%d",&n))
	{
		for(int i=0;i<6;i++)
		{
			if(a[i]<=n)
			{
				printf("%d",a[i]);
				if(a[i+1]<=n&&a[i+1]!=0)
					printf(" ");
				else
				{
					printf("\n");
					break;
				}
			}
		}
	}
	return 0;
}

 

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