题解 | #完全数计算#
完全数计算
http://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
C++,可读性较高的思路。
#include <bits/stdc++.h> using namespace std; int main() { int n; //待输入的数 while(cin>>n){ int count=0; //计数器 //遍历从2到n的每一个数,并在下一层for计算是否为完全数 for(int k=2;k<=n;k++) { int sum=1; //每个数都包含1这个因数 for(int i=2;i<=k/2;i++) //除以2:根据题干推出的缩小i范围的方法 { if(k%i==0) sum=sum+i; } if(k==sum) count++; } cout<<count<<endl; } return 0; }