A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 涵风 中级黑马   /  2014-2-13 10:31  /  1181 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编程实现 求1-1000内所有的完数(一个数如果恰好等于它的因子之和,这个数就称为“完数”。如6就是1个完数: 6=1+2+3,因子数就是所有可以整除这个数的数,但是不包括这个数自身.比如15的因子数是 1 3 5)

1 个回复

倒序浏览
随便写了下,你瞅瞅~我凭感觉应该是对的,没有仔细检查,反正思路在这.
  1. List<int> result = new List<int>();
  2.             List<int> temp = new List<int>();
  3.             int sum = 0;
  4.             for (int i = 1; i < 1000; i++)
  5.             {
  6.                 temp.Clear();
  7.                 for (int j = 1; j < i; j++)
  8.                 {
  9.                     if (i % j == 0)
  10.                         temp.Add(j);
  11.                 }
  12.                 sum = 0;
  13.                 foreach (int k in temp)
  14.                 {
  15.                     sum += k;
  16.                 }
  17.                 if (sum == i)
  18.                     result.Add(i);
  19.             }
  20.             foreach (int l in result)
  21.             {
  22.                 Console.Write(l.ToString() + "    ");
  23.             }
  24.             Console.ReadKey();
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马