题解
【入门】输出m和n范围内的完全数(完美数)
1 条题解
-
0
解题思路
枚举范围内的每个数,求它所有真因数的和,和自身相等时就是完全数。
参考代码
// 读取题目给出的数据。 // 按照题意完成计算。 // 这道题的做法:先读入题目给出的数据,再用简单的循环和判断完成要求。 #include<iostream> #include<cmath> using namespace std; bool WanMeiShu(int n){ int s; int j; s=1; for(int i=2;i<=sqrt(n);i++){ if(n%i==0){ s=s+i; j=n/i; if(i!=j){ s=s+j; } } } if(s==n) return true; else return false; } int main(){ int n,m; cin>>m>>n; for(int i=m;i<=n;i++){ if(WanMeiShu(i)){ cout<<i<<" "; } } }复杂度
代码只使用了简单变量、循环和判断。若循环检查了 n 个数据,时间复杂度通常为 O(n);没有开辟与输入规模相关的额外数组时,空间复杂度为 O(1)。
- 1