题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
//整体思路比较简单,可以利用空间换取时间
#include <stdio.h>
int main()
{
int n=0,i=0,j=0,t=2,count=0;
int arr[10000];
scanf("%d",&n);
while(t<=n)//从2开始直到n逐一判断,这里也可以写成函数的形式
{
for(i=1;i<t;i++)//从1到t-1,把所有因子找出,放在数组中
{
if(t%i==0)
{
arr[j]=i;
j++;
}
}
int num=0;
for(i=0;i<j;i++)//将因子全部相加,判断与当前的t是否相等
{
num+=arr[i];
}
if(num==t)
{
count++;//累计当前的完全数个数
}
j=0;
t++;
}
printf("%d",count);
return 0;
}
