完数判断
完数:如果一个整数其所有因子(包括1,但不包括它自己)之和等于它自身,那么这个数就是完数。
实现代码
#include<iostream>
using namespace std;
bool isPerfect(int ); //函数原型,判断数字是否为完数
void print(int );//函数原型,打印完数所有因子
int main(){
int num;
cout << "输入要判断的数字(输入-1退出): ";
cin >> num;
//判断数字并打印
if(isPerfect(num)){
print(num);
}
else{
cout << num << " 不是完数!" << endl;
}
return 0;
}
//函数实现
bool isPerfect(int num){
int result = 0;
for(int i = 1; i < num; i++){
if(num % i == 0)
result += i;
}
if(result == num){
return true;
}
else{
return false;
}
}
//函数实现
void print(int num){
cout << num << " = 1";
for(int i = 2; i < num; i++){
if(num % i == 0)
cout << "+" << i ;
}
cout << endl;
}