c#一个数如果恰好等于它的因子之和,这个数就称为“完数”.例如6=1+2+3.找出1000以内的所有完数

1个回答

  • static void Main(string[] args)

    {

    for (int i = 1; i < 1000; i++)

    {

    //获得所有因子 不包含自身,添加到集合中

    List list = new List();

    for (int j = 1; j < i; j++)

    {

    if (i % j == 0)

    {

    list.Add(j);

    }

    }

    //为集合所有元素求和

    int sum = 0;

    for (int k = 0; k < list.Count; k++)

    {

    sum += list[k];

    }

    if (sum == i)

    {

    Console.WriteLine("[{0:D3}]是完数.",i);

    }

    }

    Console.ReadLine();

    }

    //结果只有 6 、28 、496三个