一个数如果恰好等于不包含它本身所有因子之和,这个数就称为”完数”
#include<stdio.h>
#define max 1001
int main() {
int n,i,j,a[max],l;
scanf("%d",&n);
for(i=1; i<=n; i++) {
int tem=0,k=0; //每次开始新一轮的内循环之前重置
for(j=1; j<i; j++) {
if(i%j==0) {//满足条件
tem+=j;//储存因子之和
a[k++]=j;//储存因子
}
}
if(tem==i) {//满足条件 格式输出
printf("%d its factors are",i);
for(l=0;l<k;l++){
printf(" %d",a[l]);
}
printf("\n");
}
}
return 0;
}
该程序使用C语言编写,用于找出给定范围内(不超过1001)的所有完数。完数是指一个数等于其所有因子(不包括它自身)之和。程序通过两层循环检查每个数字的因子,如果因子之和等于原数,则输出该完数及其因子。

265

被折叠的 条评论
为什么被折叠?



