问题 A 完数.cpp

记得完数包括1,直接遍历求余数为0即可,没什么可以记录的,看代码吧,记得P数组开大点

#include<iostream>

using namespace std;

int N;
int TO(int NNN) {
	int sum = 0;
	int t = NNN;
	for(int i = 1; i < t; i++) {
		if(t % i == 0) {
			sum += i;
		}
	}
	if(sum == NNN) return 1;
	else return 0;
}
int main() {
	while(~scanf("%d",&N)) {
		int ds = 0;
		int P[10000] = {0};
		for(int i = 1; i<=N; i++) {
			if(TO(i)==1)
				P[ds++] = i;
		}
		for(int i =0; i < ds; i++) {
			if(i) printf(" ");
			printf("%d",P[i]);
		}
		if(ds!=0)
			printf("\n");
	}
	return 0;
}

发布了78 篇原创文章 · 获赞 3 · 访问量 6573

猜你喜欢

转载自blog.csdn.net/weixin_38023259/article/details/105028056