include <stdio.h> #include <stdlib.h> int fun(int n,int a[],int *k) {int m=0,i,t; t=n; /**********found**********/ for(i=0;i<n;i++) if(n%i==0) {a[m]=i;m++;t=t-i;} /**********found**********/ k=m; /**********found**********/ if(t=0) return 1; else return 0; } main() {int n,a[10],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); system("pause"); return 0; }用C语言
时间: 2023-07-23 07:30:53 浏览: 113
编写了一个判断一个数是否为完数,并输出其因子的程序。完数是指除本身外所有因子之和等于该数的自然数。以下是完整代码:
```
#include <stdio.h>
#include <stdlib.h>
int fun(int n, int a[], int *k) {
int m = 0, i, t;
t = n;
for (i = 1; i < n; i++) {
if (n % i == 0) {
a[m] = i;
m++;
t -= i;
}
}
*k = m;
if (t == 0) {
return 1;
} else {
return 0;
}
}
int main() {
int n, a[10], 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);
}
system("pause");
return 0;
}
```
阅读全文