代码改变世界

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

  随风浪迹天涯  阅读(1665)  评论(2编辑  收藏  举报

完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如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;
}
复制代码
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示