题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
#include <stdio.h> int main() { int n; scanf("%d",&n); int count=0; for(int i=5;i<=n;i++){ int tmpSum=0; for(int j=2;j*j<=i;j++){ if(i%j==0&&(j*j)!=i){ tmpSum+=(j+i/j); } else if(i%j==0&&(j*j)==i){ tmpSum+=j; } } if(tmpSum==i-1) count++; } printf("%d\n",count); return 0; }
按照题目的要求找到每个数的因子,由于这里给的数据并不大,所以逐项遍历可以解决问题,特别注意的是万一遇到平方和等于原数的,那么需要对因子只加一次(虽然感觉上这样的数因子之和一定小于完全数);
在上述的基础上对数据统计输出即可。