m0_72585436 2023-12-27 14:34 采纳率: 75%
浏览 4
已结题

要考试了,不会呀,帮帮我

找完全数 暂无分

小明刚刚学习了关于完全数的概念: 因子之和等于它本省的自然数,如6=1+2+3
求A和B之间所有的完全数,并且输出个数。

输入描述:

输入一行,包含两个正整数A和B, 约定2<=A<=B<=1000。

输出描述:

输出两行,第一行表示完全数的个数
第二行表示A和B之间所有的完全数

输入示例:

2100

输出示例:

2
6 28

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-12-27 14:41
    关注
    #include <stdio.h>
    int judge(int n) 
    { 
    int s = 0;
    for (int i = 1; i < n; i++) if (n % i == 0) s += i;
    return s == n;
    }
    int main()
    {
    int a, b, cnt = 0, arr[1001];
    scanf("%d%d", &a, &b);
    for (int i = a; i <= b; i++) { if (judge(i)) arr[cnt++] = i; }
    printf("%d\n", cnt);
    for (int i = 0; i < cnt; i++) printf("%d ", arr[i]);
    return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月27日