题解 | #完全数计算#

完全数计算

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;
}

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务