【C#】 迴圈小練習_完全數

完全數 (Perfect number) 又成完美數或是完備數,是一些特殊的自然數

完全數本身的真因數(除了自己以外的真因數)的和,剛好會等於自己。
舉例來說:最小的完全數是6。
6的因數有[ 1, 2, 3, 6 ] ,去除6之後,其餘的數相加剛好等於6 ( 1 + 2 + 3 = 6 )。

關鍵是找出因數,然後利用迴圈相加因數,看看加總後的值,是不是剛好等於自己,如果相同,就是完全數
 

 class Program
    {
        #region 完全數 (Perfect number) 又成完美數或是完備數,是一些特殊的自然數

        static void Main(string[] args)
        {
            int i, j, sum;
            for (i = 2; i < 10000; i++) //設定範圍
            {
                sum = 0;
                for (j = 1; j <= i / 2; j++)            //被除數範圍
                {
                    if (i % j == 0)                     //可以整除就是因數
                    {
                        sum = sum + j;                  //累加因數
                    }
                }
                if (sum == i)                           //完全數判斷
                {
                    printData(i);
                }
            }
            Console.ReadLine();
        }
        public static void printData(int n)
        {
            int x;
            Console.Write(string.Format("{0}的因數有(自己除外):", n));    //輸出解
            for (x = 1; x <= n / 2; x++)
            {
                if (n % x == 0)
                {
                    string ss = x.ToString() + " ";
                    Console.Write(string.Format("{0}", ss));   //輸出解
                }

            }
            Console.Write("\n");
        }
        #endregion
    }

水滴可成涓流,涓流可成湖泊大海。
汲取累積知識,將知識堆積成常識;將常識探究成學識;將學識簡化為知識;授人自省。