找亲密数
时间:2010-10-09 来源:chenping2008
如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。
代码如下:(3000以内的亲密数对)
Int32 start = 2;
Int32 end = 3000;
IList<IList<Int32>> lists = new List<IList<Int32>>();
Int32 sum = 0;
Int32 sum1 = 0;
for (Int32 item = start; item <= end; item++)
{
sum = 0;
sum1 = 0;
for (Int32 i = 1; i <= item / 2; i++)
{
if (item % i == 0)
{
sum += i;
}
}
if (sum <= end && sum >= start && sum>item)
{
for (Int32 i = 1; i <= sum / 2; i++)
{
if (sum % i == 0)
{
sum1 += i;
}
}
}
if (sum1 == item)
{
IList<Int32> temp = new List<Int32>();
temp.Add(item);
temp.Add(sum);
lists.Add(temp);
}
}
foreach (IList<Int32> item in lists)
{
foreach (Int32 value in item)
{
Response.Write(value.ToString() + " ");
}
Response.Write("<br/>");
}
结果为:220 284 | 1184 1210 | 2620 2924