题解 | 【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;
}

