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

 

你可能感兴趣的:(实现)