塵渡 2021-11-18 09:41 采纳率: 84.2%
浏览 2457
已结题

输出 1 到 100 之间的所有完数。要求定义和调用函数is(n)判断n是否为完数,若n为完数则返回1,否则返回0。完数就是因子和与它本身相等的数,6是完数(6=1+2+3),1不是完数。

img

  • 写回答

1条回答 默认 最新

  • 小行星坠落114514 2021-11-18 10:10
    关注
    
    #include "iostream"
    
    int is(int n);
    
    int main() {
        int i;
        for (i = 1; i <= 100; i++) {
            if (is(i)) {
                printf("%d ", i);
            }
        }
        return 0;
    }
    
    int is(int n) {
        int i, sum;
        if (n==1) return 0;
        sum = 0;
        for (i = 1; i <= n / 2; i++) {
            if (n % i == 0) {
                sum = sum + i;
            }
        }
        if (sum == n)return 1;
        else return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月28日
  • 已采纳回答 11月20日
  • 创建了问题 11月18日