1. 程式人生 > >演算法訓練 完數

演算法訓練 完數

  演算法訓練 完數  

時間限制:1.0s   記憶體限制:512.0MB

    

問題描述

  一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如,6的因子為1、2、3,而6=1+2+3,因此6就是“完數”。又如,28的因子為1、2、4、7、14,而28=1+2+4+7+14,因此28也是“完數”。編寫一個程式,判斷使用者輸入的一個數是否為“完數”。
  輸入格式:輸入只有一行,即一個整數。
  輸出格式:輸出只有一行,如果該數為完數,輸出yes,否則輸出no。
  輸入輸出樣例

樣例輸入

6

樣例輸出

yes

#include <iostream>
#include <cmath> 
using namespace std;

int main(int argc, char** argv) {
	int n;
	cin>>n;
	int sum=0;
	for(int i=1;i<=n/2;i++)
		if(n%i==0)
				sum+=i; 		
	if(sum==n)
		cout<<"yes";
	else
		cout<<"no";
	return 0;
}