完数c实现
完数,顾名思义,就是一个数如果恰好等于它的因子之和。例如6=1+2+3.编写找出1000以内的所有完数
#include <stdio.h> #include <stdlib.h> int main() { int k[100]; int i,j,ws,n; for(j=2;j<1000;j++) { ws=j; n=-1; for(i=1;i<j;i++) { if(j%i==0) { n++; ws-=i; //判断该数的因子,然后减去 k[n]=i; //保存该数的所有因子 } } if(ws==0) //该数减去它的所有因子,判断是否为0 { printf("%d is a wanshu.\n",j);
//打印完数的所有因子 for(i=0;i<n;i++) { printf("%d,",k[i]); } printf("%d\n",k[n]); } } return 0; }