求下面问题的完整代码。

【问题描述】输入一个整数,输出从3开始到该数之间的所有完数。
要求:编写函数,判断一个正整数a是否为完数,如果是完数,函数返回值为1,否则为0。
概念普及:完数:一个数的所有因子之和等于该数本身。如,6、28都是完数,6=1+2+3,28=1+2+4+7+14。
【输入形式】输入一个整数
【输出形式】输出从3开始到该数之间的所有完数,每个数输出
【样例输入】10
【样例输出】6
【样例输入】0
【样例输出】no
【样例输入】30
【样例输出】6 28

#include<stdio.h>

int fun(int n){
    int sum = 0;
    for(int i=1;i<n;i++){
        if(n%i==0)
          sum += i;
    }
    if(sum==n)
        return 1;
    return 0;
}
int main()
{
    int i,n,count=0;
    scanf("%d",&n);  //输入一个正整数n
    for(i=3;i<=n;i++)
    {
       if(fun(i)){
             count++;
             printf("%d ",i);
          }
        }
  if(count==0)
    printf("no");
  return 0;
}
#include <stdio.h>
int ws(int n)
{
    int sum = 0;
    for(int i=1;i<n;i++)
        if(n%i==0)
          sum += i;
    if(sum == n)
        return 1;
    return 0;
}
int main()
{
    int n,count= 0;
    scanf("%d",&n);
    for(int i=3;i<=n;i++)
        if(ws(i) == 1)
        {
            count++;
            printf("%d ",i);
        }
    if(count == 0)
        printf("no");
}

#include<stdio.h>

int function(int n);

int main() {

    int n, count=0;

    if (scanf("%d",&n) == 1) {
        for (int i = 3; i <= n; i++) {
            if(function(i)){
                count++;
                printf("%d ", i);
            }
        }
        if(count==0)
            printf("no\n");
    }

    return 0;
}


int function(int n) {

    int sum = 0;

    for(int i=1;i<n;i++) {
        if(n%i==0)
            sum += i;
    }
    if(sum==n)
        return 1;

    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632