实验内容:
编程实现找出1---1000之间的完数。(完数是一个数等于它的因子之和的数。例如:6的因子为1,2,3,而6=1+2+3,因此6是“完数”。)
实验要求:
输出格式如下:
6 its factors are 1,2,3
28 its factors are 1,2,4,7,14
496 its factors are 1,2,4,8,16,31,62,124,248
#include<stdio.h>
int main() {
int s[50];//用于存储完数的因数;
int i,j;
int len=0;
int sum=0;
int index;
for (i = 1; i < 1000; i++) {
for (j = 1; j < i; j++) {
if (i % j == 0) {
s[len] = j;
len++;
}
}
index = len;
while (len) {
--len;
sum += s[len];
}
if (i == sum) {
printf("%d its factors are", i);
for (int k = 0; k < index; k++) {
if (k == 0) {
printf(" %d", s[k]);
}
else {
printf(",%d",s[k]);
}
}
printf("\n");
}
sum = 0;
}
}