1. 程式人生 > >1-1000以內的完數

1-1000以內的完數

* Copyright (c) 2012, 煙臺大學計算機學院
* All rights reserved.
* 作    者:田宇
* 完成日期:2012 年  11月 4 日
* 版 本 號:v1.0
*
* 輸入描述: 無
* 問題描述: 無
* 程式輸出:1-1000以內所有完數
* 問題分析:
* 演算法設計:

/*一個數如果恰好等於它的因子之和,這個數就稱為“完數”。
例如6=1+2+3,再如8的因子和是7(即1+2+4),
8不是完數。程式設計找出1000以內的所有完數。
*/
#include <iostream>   
#include<Cmath>   
using namespace std;  
int main( )  
{  
	int i,sum,c;  
	cout<<"1-1000的完數有:"<<endl;
	for(i=2;i<=1000;i++)  
	{  
		sum=1;   
		for(c=2;c<sqrt(i);c++)      
			if(i%c==0) 
				sum+=(c+i/c);     
			
			if(i==sum) 
				cout<<i<<"  ";  
	}  
	cout<<endl;  
	return 0;  
}

* 執行結果:


* 心得體會:

學C++可長見識了,頭一次知道什麼是完數、什麼是水仙花數、等等等。。。。