求正整数 2 和 n 之间的完全数
题目描述
求正整数 2 2 2 和 n n n 之间的完全数(一行一个数)。
完全数:对于一个自然数,所有比它小的所有因数之和,等于它本身,它就是个完全数。如 6 = 1 + 2 + 3 6=1+2+3 6=1+2+3。
输入格式
输入 n ( n ≤ 10000 ) n(n \le 10000) n(n≤10000)。
输出格式
一行一个数,按由小到大的顺序。
样例 #1
样例输入 #1
10
样例输出 #1
6
样例 #2
样例输入 #2
100
样例输出 #2
6
28
#include<stdio.h>
#include<math.h>
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
int func(int n){
int i,sum=0;
for(i=1;i<n;i++){
if(n%i==0){
sum+=i;
}
}
return sum;
}
int main(){
int n,i;
scanf("%d",&n);
for(i=2;i<=n;i++){
if(i==func(i)){
printf("%d\n",i);
}
}
return 0;//CSDN:旺旺的碎冰冰~
}