找亲密数

如果整数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 

posted @ 2010-10-09 10:49  chenping2008  阅读(465)  评论(0编辑  收藏  举报