题解 | 【C语言】#完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
#include <stdio.h> #include <math.h> int IsPerfect(int n) { int m = n - 1; for(int i = 2; i < sqrt(n); i++) { if(n % i == 0) { m -= i; m -= n/i; } } if(n / sqrt(n) == 0) { m -= sqrt(n); } return m == 0 ? 1 : 0; } int main() { int n = 0; scanf("%d", &n); int count = 0; for(int i = 6; i <= n; i++) { if(IsPerfect(i)) { count++; } } printf("%d", count); return 0; }