完数判断
请修改编辑器中的代码,完成以下功能:编写一个函数 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 );
}
控制台
调试终端
