题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int Perfectnumber(int digit)//判断这个数字是不是完美数
{
int sum = 0;
for (int i = 1; i < digit; i++)//从1到这个数值本身
{
if (digit % i == 0 && digit != i)//这里是计算符合条件的数值的相加
{
sum += i;
}
}
if (sum == digit)
return 1;
else
return 0;//也就是没有返回不完美的情况 所以导致开始写代码判断的时候 出现错误
}
void Traverse(int n)//遍历
{
int count = 0;
for (int i = 1; i <= n; i++)
{
if (Perfectnumber(i) == 1)
count++;
}
printf("%d", count);
}
int main()
{
int n = 0;
scanf("%d", &n);
Traverse(n);
return 0;
}

