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

题目如下

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

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




#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; }
这个题 我一开始没有用上函数而是直接打的代码,认为不用函数就可以做出来
但打完代码后发现有一个地方无论怎么改错都不对
所以重新加入了函数
打出了最终的代码

  

上一篇:面试 | 卡掉不少人的一道腾讯算法面试题,高手来试试?


下一篇:Codeforces 1150