简单算法系列之完数的计算

完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)

现在通过C#程序代码找出从1到1000 所有的完数。

先看结果截图吧:

下面是代码,比较简单,不做解释:

static void Main(string[] args)
{
//Match
Console.WriteLine("从1到1000所有的完数如下:");
List
<int> list = new List<int>();
for (int i = 1; i < 1000; i++)
{
int temp = 0;
for (int j = 1; j < i; j++)
{
if (i % j == 0)
temp
+= j;
}
if (temp == i)
list.Add(i);
}
foreach (int i in list)
{
Console.Write(i
+"=");
List
<int> list1 = getNums(i);
for (int j = 0; j < list1.Count; j++)
{
Console.Write(list1[j]);
if (list1[j] == list1.Last())
continue;
Console.Write(
"+");
}
Console.WriteLine();
}
}

public static List<int> getNums(int num)
{
List
<int> l = new List<int>();
for (int i = 1; i < num; i++)
{
if (num % i == 0)
l.Add(i);
}
return l;
}
原文地址:https://www.cnblogs.com/damonlan/p/2077694.html