问
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/8/28 23:39
  • 上次更新2023/11/3 00:36:13
查看原帖
问
1027359
封禁用户楼主2023/8/28 23:39

这是一个找完美数的代码

#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;
}

就可以了,这是为什么

2023/8/28 23:39
加载中...