一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3而6=1=2=3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:
6 its factors are 1,2,3
看到这个题目,我们需要解决的是找出一个数的因子,而找因子的规律是,从1开始进行求余运算,如果求余为零,则该数为其中的一个因子。然后递加1,再进行判断,直到递加到和该数相等。然后把所有的因子加起来,看时候和该数相同。如果相同,然后在进行该项的输出。输出可以另写一个函数,进行调用。代码如下:
#include <stdio.h>
void print_item(int); int main(int argc,int *argv[]) { int i,j,k = 0,result; int n = 1000; for (i = 1; i < n; i++) { result = 0; for (j = 1; j < i; j++) { if (i % j == 0) { result += j; } } if (result == i) { print_item(i); } } system("pause"); return 0; }
void print_item(int number) { int i; printf("%d its factors are:",number); for (i = number; i > 1; i--) { if (number % i == 0) { if (i == 2) { printf("%d",number / i); } else { printf("%d,",number / i); } } } printf("\n"); }
|
经程序运算1到1000中的完数有6,28,496
阅读(9671) | 评论(0) | 转发(0) |