青少年编程知识记录 codecoming

求正整数2和n之间的完全数

【题目描述】

求正整数2和n之间的完全数(一行一个数)。

完全数:因子之和等于它本身的自然数,如6=1+2+3

【输入描述】

输入n

【输出描述】


一行一个数,按由小到大的顺序。

【输入样例】


7

【输出样例】


6

#include<iostream>
using namespace std;
int judge(int x);
int main()
{
   int n;
   int i;
   cin>>n;
   for(i=2; i<=n; i++)
       if(judge(i)==i) //judge(i)为i的因子之和,judge(i)若与i相等,满足条件,输出
           cout<<i<<endl;
   return 0;
}
int judge(int x)
{
   int i;
   int sum=0;
   for(i=1; i<=x-1; i++) //枚举1到x中,判断是否为x的因子
       if(x%i==0) //若是x的因子,累加
           sum+=i;
   return sum;
}



(adsbygoogle = window.adsbygoogle || []).push({});

作者:亿万年的星光 分类:题解目录 浏览: