文档库

最新最全的文档下载
当前位置:文档库 > C#实现1000以内完数

C#实现1000以内完数

C#1000以内完数求解:

创建一个控制台应用程序,求1000之内的所有“完数”。所谓“完数”是指一个数恰好等于它的所有因子之和。例如6是完数,因为6=1+2+3。

具体代码:

using System;

using System.Collections.Generic;

using System.Text;

using System.Collections;

namespace Wanshu

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("1000以内的完数为:");

//对2-1000的数进行比对

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

{

string str = "1";//用于存放完数的各个因子

int s = 1; //用于存放各因子之和

int a = 0;

for (int j = 2; j <= (int)Math.Sqrt(i); j++)//

{

//如果j能够被i整除且i和j的值不相等

if (i % j == 0 && i != j)

{

a = i / j; //用于存放满足条件两数之商

s += j + a;//存放因子之和

str += string.Format("+{0}+{1}", j, a);//存放满足条件的各因子

}

}

//如果满足条件的各因子子和与原值相等则输出

if (s == i)

{

Console.WriteLine("{0} = {1}", i, str);

}

}

}

}

}

程序运行结果:

C#实现1000以内完数