问题描述:
所谓完全数是这样一种正整数,除它本身之外的所有约数( 真因子 )的和恰好等于它本身。
比如 6 的真因子有 1,2,3, 而 1+2+3=6, 所以 6 就是一个完全数。
给定一个正整数 n,输出 1 到 n 之间所有的完全数,每个数字一行。
样例输入:
10
样例输出:
6
约定:
1<=n<=10000
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,m=0;
int main() {
cin>>n;
for(int k=2;k<=n;k++){
m=0;
for(int i=1;i<k;i++){
if(k%i==0){
m+=i;
}
}
if(k==m){
cout<<k<<endl;
}
}
return 0;
}