文章

17

粉丝

177

获赞

2

访问

119.4k

头像
完数VS盈数
P1170 清华大学上机题
发布于2021年9月20日 16:02
阅读数 6.3k

#include<stdio.h>
#include<math.h>
int main()
{
    int fin[100], fin_l = 0;
    int full[100], full_l = 0;
    for(int i = 2;i <= 60;i++)
    {
        int sum = 1;
        for(int j = 2;j <= sqrt(i);j++)
        {
            if(i % j == 0){
                if(i / j == j) sum += j;
                else sum += j + i / j;
            }
        }
        if(sum == i) fin[fin_l++] = i;
        else if(sum > i) full[full_l++] = i;
    }
    printf("E: ");
    printf("%d", fin[0]);
    for(int i = 1;i < fin_l;i++)
        printf(" %d", fin[i]);
    printf("\n");
    
    printf("G: ");
    printf("%d", full[0]);
    for(int i = 1;i < full_l;i++)
        printf(" %d", full[i]);
    printf("\n");
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发