| 题目要求: 请写一个程序,给出指定整数范围【a ,b】内所有的完数,一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数,例如6是完数,因为6=1+2+3。
 输入说明:共一组数据,为两个正整数,分别表示a和b(1<a<b<10^5)。
 输出说明:指定范围内的所有完数,每个数占一行。
 
 
 我写的代码:
 
 复制代码  class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入开始数字");
            int start = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入结束数字");
            int end = Convert.ToInt32(Console.ReadLine());
            for (int i = start; i <= end; i++)
            {
               isWanShu(i);
            }
            Console.ReadLine();
        }
        public static bool isWanShu(int num)
        {
            int s = 0;//和
            for (int i = 1; i < num; i++)
            {
                if ((num % i) == 0)
                    s = s + i;
            }
            if (num == s)
            {
                string str = s.ToString() + "=";
                for (int i = 1; i < s; i++)
                {
                    if ((s % i) == 0)
                    {
                        str = str + "+" + i.ToString();
                    }
                }
                Console.Write(str + "\r\n");//输出该数所有的约数
                return true;
            }
            return false;
        }
    }
 
 |