C語言求完數(完全數)(詳解版) - tw511教學網
文章推薦指數: 80 %
C語言求完數(完全數)(詳解版) ... 如果一個數等於它的因子之和,則稱該數為“完數”(或“完全數”)。
例如,6的因子為1、2、3,而6=1+2+3,因此6是“完 ...
技術文章»C語言求完數(完全數)(詳解版)
C語言求完數(完全數)(詳解版)
2020-07-1610:04:32
問題描述
求某一範圍內完數的個數。
如果一個數等於它的因子之和,則稱該數為“完數”(或“完全數”)。
例如,6的因子為1、2、3,而6=1+2+3,因此6是“完數”。
問題分析
根據完數的定義,解決本題的關鍵是計算出所選取的整數i(i的取值範圍不固定)的因子(因子就是所有可以整除這個數的數),將各因子累加到變數s(記錄所有因子之和),若s等於i,則可確認i為完數,反之則不是完數。
演算法設計
對於這類求某一範圍(由於本題範圍不固定,在程式設計過程中採用鍵盤輸入的方式)內滿足條件的數時,一般釆用遍歷的方式,對給定範圍內的數值一個一個地去判斷是否滿足條件,這一過程可利用迴圈來實現。
本題的關鍵是求出選取數值i的因子,即從1到i-1範圍內能整除i的數,看某一個數j是否為i的因子,可利用語句if(i%j==0)進行判斷,求某一個數的所有因子,需要在1到i-1範圍內進行遍歷,同樣釆用迴圈實現。
因此,本題從整體上看可利用兩層迴圈來實現。
外層迴圈控制該數的範圍2?n;內層迴圈j控制除數的範圍為1?i,通過i對j取餘,是否等於0,找到該數的各個因子。
另外應注意每次判斷下一個選定數之前,必須將變數s的值重新置為0,程式設計過程中一定要注意變數s重新置0的位置。
程式流程圖:
下面是完整的程式碼:
#include
延伸文章資訊
- 1C語言找完美數 - 課程板 | Dcard
- 2C++列出所有小於N的完美數 - DRGO
- 3C語言求完數(完全數)(詳解版) - tw511教學網
C語言求完數(完全數)(詳解版) ... 如果一個數等於它的因子之和,則稱該數為“完數”(或“完全數”)。例如,6的因子為1、2、3,而6=1+2+3,因此6是“完 ...
- 4[C++]d010盈數、虧數和完全數- 劉育愷的學習歷程 - Google Sites
現在請你寫一個程式,輸入一個正整數N,然後印出它是盈數、虧數還是完全數。 解題: #include <iostream>. using namespace std;. main(). {.
- 5【c語言】(迴圈)找出1到10000的完全數