程序要求:完数,即完美数,一个数字如果恰好等于除它本身之外的因子之和,例如:6=1+2+3。求出1~100之间的所有完数,并打印出该数的因数。
程序如下:
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int i;
- for(i=0;i<100;i++)
- wanshu(i);
- return 0;
- }
- int wanshu(int i)
- {
- int j;
- int k=0;
- int sum=0;
- int f[100];
- for(k=0;k<100;k++)
- f[k]=0;
- for(j=1;j<i;j++)
- {
- if(i%j==0)
- {
- f[k]=j;
- sum+=j;
- k++;
- }
-
- }
- if(sum==i)
- {
- printf("%d 是完数\n",i);
- printf("它的因数为:\n");
- for(k=0;k<100;k++)
- {
- if(f[k]!=0)
- printf("%d\n",f[k]);
- }
- }
- else
- sum=0;
- }
阅读(2642) | 评论(0) | 转发(1) |