C Language Logo
C语言二级在线二级在线
首页选择题程序题成为会员帮助其他科目

完数判断

请修改编辑器中的代码,完成以下功能:编写一个函数 fun 判断给定整数是否为完数,并输出其因子。完数是指所有正真因子(不含自身)之和等于该数本身的正整数。函数 fun 接受一个整数作为输入,将其因子存储在数组中,并返回是否为完数的标志。程序需要输入一个整数,若该整数是完数,则输出其因子;否则输出不是完数的提示。 输入格式: 一个整数n(1≤n≤1000) 输出格式: 如果 n 是完数,输出格式为 "n 是完数,其因子是: 因子列表" 如果 n 不是完数,输出格式为 "n 不是完数." 输入示例: 28 输出示例: 请输入一个整数: 28 是完数,其因子是: 1 2 4 7 14

#include <stdio.h>
int  fun(int  n, int  a[], int  *k)
{   int  m=0, i, t;
    t = n;
    for( i=0; i<n; i++ )
       if(n%i==0)
       {  a[m]=i;  m++;  t=t - i;  }
    k=m;
    if ( t=0 )  return  1;
    else  return  0; 
}
int main(void)
{  int  n , a[1000], flag, i, k;
   printf("请输入一个整数:    ");  scanf("%d",&n);
   flag = fun( n, a, &k );
   if(flag)
   {  printf(" %d 是完数,其因子是:  ", n);
      for(i=0;i<k;i++)   printf("  %d ", a[i]);
      printf("\n");
   }
   else    printf(" %d 不是完数.\n ", n );
   }

控制台

调试终端

准备就绪