这是一个找完美数的代码
#include <iostream>
#include <cmath>
using namespace std;
int zhao(int i){
int sum=0;
for(int k=1;k<=ceil(sqrt(i));k++){
if(i%k==0){
sum+=k;
}
}
return sum;
}
int main(){
for(long long i=1;;i++){
if(zhao(i)==i){
cout<<i<<endl;
}
}
}
这个并不能得到我们想要的结果
但是把
int zhao(int i){
int sum=0;
for(int k=1;k<=ceil(sqrt(i));k++){
if(i%k==0){
sum+=k;
}
}
return sum;
}
改成
int zhao(int i){
int sum=0;
for(int k=1;k<i;k++){
if(i%k==0){
sum+=k;
}
}
return sum;
}
就可以了,这是为什么