題目:如果一個數恰好等於它的因子之和,這個數就稱為“完數”。例如:6=1+2+3,請找出1000以內的所有的完數。


這題考點很刁鑽,首先考驗的是讀者的數學水平如何,考點為:

1.  什么是完數

2.  什么是因子

,難度為:1顆星

首先我們需要了解一下什么是完數:

如果一個數恰好等於它的真因子之和,則稱該數為“完全數”  。
各個小於它的約數(真約數,列出某數的約數,去掉該數本身,剩下的就是它的真約數)的和等於它本身的自然數叫做完全數(Perfect number),又稱完美數或完備數。
 
例如:
第一個完全數是6,它有約數1、2、3、6,除去它本身6外,其余3個數相加,1+2+3=6。
第二個完全數是28,它有約數1、2、4、7、14、28,除去它本身28外,其余5個數相加,1+2+4+7+14=28。
第三個完全數是496,有約數1、2、4、8、16、31、62、124、248、496,除去其本身496外。
 

解題思路:

根據完數的定義,解決本題的關鍵是計算出所選取的整數i的因子(因子就是所有可以整除這個數的數)
將各因子累加到變量s (記錄所有因子之和)
若s等於i,則可確認i為完數,反之則不是完數。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int i, j;   // 變量i控制選定數范圍
 5     int sum;    // j控制除數范圍
 6     for (i = 2; i <= 1000; i++)
 7     {
 8         sum = 0;       // 保證每次循環時 sum 的初值為0
 9 
10         for (j = 1; j < i; j++)
11         {
12             if (i % j == 0) // 判斷j是否為i的因子
13             {
14                 sum = sum + j;
15             }
16         }  
17 
18         if (sum == i)   // 判斷因子之和是否和原數相等
19         {
20             printf("%d\n", i);
21         }
22     }
23 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6=1+2+3。編程找出1000以內的所有完數。 【Python3練習題 014】 一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6=1+2+3。編程找出1000以內的所有完數。 【JAVA習題八】一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程 找出1000以內的所有完數。 一個數如果恰好等於它的因子之和,這個數就稱為 "完數 "。例如6=1+2+3.編程 找出1000以內的所有完數。 編程題:一個數如果恰好等於它的因子之和,這個數就稱為 "完數 "。例如6=1+2+3.編程 找出1000以內的所有完數。 一個數如果恰好等於它的因子之和,這個數就稱為“完數”例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。編程序找出1000之內的所有完數,並按下面格式輸出其因子: 一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。編程序找出1000之內的所有完數,並按下面格式輸出其因子 如果一個數恰好等於它的所有因子(因子就是所有可以被這個數整除的數,包括1,但不包括自身)之和,則稱該數為一個“完數”。(例如:6的因子為1,2,3,且1+2+3=6,因此6是一個“完數”。)計算並輸出1000以內的所有完數。 一個數如果恰好等於不包含它本身所有因子之和,這個數就稱為"完數"。 例如,6的因子為1、2、3,而6=1+2+3,因此6是"完數"。 編程序找出N之內的所有完數,並按下面格式輸出其因子 一個數如果恰好等於它的因子之和,這個數就稱為 "完數 "
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM