找亲密数
如果整數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?
轉載于:https://www.cnblogs.com/chenping-987123/archive/2010/10/09/1846410.html
總結
- 上一篇: 使用dbghelp获取调用堆栈--rel
- 下一篇: 熟食店名字853个