完数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; }

 

posted @ 2013-12-08 23:08  Awy  阅读(204)  评论(0编辑  收藏  举报