思路:
完美数是指一个数是除了自身之外的因子的和。
代码:
void getPerfectNum(){
for(int i=2;i<=1000;i++){
if(isPerfectNum(i)){
cout<<i<<"\t";
}
}
}
bool isPerfectNum(int num){
int sum=0;
for(int i=1;i<num-1;i++){
if(num%i==0){
sum=sum+i;
}
}
return sum==num?true:false;
}
测试:
#include<stdio.h>
#include <stdlib.h>
#include<math.h> //数学函数,求平方根、三角函数、对数函数、指数函数...
// MAXSIZE
#define MAXSIZE 1000
//用于使用c++的输出语句
#include<iostream>
using namespace std;
//设计一个算法,找出1000以内的所有完美数
bool isPerfectNum(int num);
void main(){
int arr[MAXSIZE]={};
int j=0;
for(int i=2;i<=1000;i++){
if(isPerfectNum(i)){
arr[j++]=i;
}
}
for(int i=0;i<j;i++){
cout<<arr[i]<<"\t";
}
}
bool isPerfectNum(int num){
int sum=0;
for(int i=1;i<num-1;i++){
if(num%i==0){
sum=sum+i;
}
}
return sum==num?true:false;
}
本文介绍了一个算法,用于找出1000以内的所有完美数。完美数是一个特殊的整数,其所有真因数(即除了自身以外的因数)之和等于该数本身。通过两段C++代码展示了如何实现这一算法,第一段代码使用了更为传统的C风格的输入输出,而第二段代码则利用了C++的特性进行输出。
592

被折叠的 条评论
为什么被折叠?



