大學生新聞網,大學生新聞發布平臺
大學生新聞網
大學生新聞大學生活校園文學大學生村官
社會實踐活動社會實踐經歷社會實踐報告社會實踐總結社會實踐心得
全國排名校友會版軟科排名分類排名本科排名一本排名二本排名專科排名學校地址
求職簡歷職場法則面試技巧職場故事求職招聘大學生就業
英語學習計算機學習電氣工程機械工程經濟管理建筑設計財務會計
申請書證明書檢討書自薦信演講稿心得體會調查報告讀后感求職信推薦信其它范文

C語言求完數(完全數)

問題描述
求某一范圍內完數的個數。

如果一個數等于它的因子之和,則稱該數為“完數”(或“完全數”)。例如,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<stdio.h>
int main()
{
    int i, j, s, n;  /*變量i控制選定數范圍,j控制除數范圍,s記錄累加因子之和*/
    printf("請輸入所選范圍上限:");
    scanf("%d", &n);  /* n的值由鍵盤輸入*/
    for( i=2; i<=n; i++ )
    {
        s=0;  /*保證每次循環時s的初值為0*/
        for( j=1; j<i; j++ )
        {
            if(i%j == 0)  /*判斷j是否為i的因子*/
                s += j;
        }
        if(s == i)  /*判斷因子這和是否和原數相等*/
            printf("It's a perfect number:%d\n", i);
    }
    return 0;
}
運行結果:

請輸入所選范圍上限:10000↙︎
It's a perfect number:6
It's a perfect number:28
It's a perfect number:496
It's a perfect number:8128
知識點補充
上述程序中求某數的因子時,釆用從1到i-1范圍內進行遍歷的方法,一個數一個數地去試。這種方法可以做到沒有遺漏,但是效率不高。

對于某一整數來說,其最大因子為n/2 (若n為偶數時,若為奇數最大因子小于n/2),在n/2〜n-1范圍內沒有數據可以整除此數。據此,我們可以把遍歷范圍縮小至1〜n-1,這樣程序效率可以提高一倍。相應程序如下:

#include<stdio.h>>
int main()
{
    //...
    for( i=2; i<=1000; i++)
    {
        s=0;
        for( j=1; j<=n/2; j++ )
        {
            if(i%j == 0)
            s += j;
        }
    //...
    }
}</stdio.h>
    作者:大學生新聞網    來源:大學生新聞網
    發布時間:2025-03-11    閱讀:
    掃一掃 分享悅讀
  • C語言求親密數
  • C語言求親密數
  • 如果整數A的全部因子(包括1,不包括A本身)之和等于B;且整數B的全部因子(包括1,不包括B本身)之和等于A
  • 03-11 關注:0
  • C語言求完數(完全數)
  • C語言求完數(完全數)
  • 如果一個數等于它的因子之和,則稱該數為“完數”(或“完全數”)。例如,6的因子為1、2、3,而 6=1+2+3,因此6是“完數”。
  • 03-11 關注:1
  • C語言輸出菱形(詳解版)
主站蜘蛛池模板: 日韩精品视频观看| 国产精品视频网站你懂得| 狂野欧美性猛xxxx乱大交| 好男人资源在线手机免费| 动漫精品一区二区3d| 一女被两男吃奶玩乳尖| 短篇丝袜乱系列集合嘉嘉| 好吊妞788免费视频播放| 免费一级肉体全黄毛片| gogo少妇无码肉肉视频| 激情视频在线观看网站| 在线你懂的网站| 亚洲女初尝黑人巨高清| 69av在线视频| 日韩日韩日韩日韩日韩| 国产偷窥熟女精品视频大全| 久久se精品动漫一区二区三区| 自拍偷自拍亚洲精品播放| 成人影院久久久久久影院| 免费特级黄色片| 99精品久久久中文字幕| 欧美精品久久天天躁| 国产精品vⅰdeoXXXX国产| 久久黄色精品视频| 草草影院国产第一页| 成人免费视频试看120秒| 免费人成在线观看网站品爱网日本| 99久久精品国产一区二区三区 | 夏夏和三个老头第二部| 亚洲欧洲久久久精品| 俄罗斯精品bbw| 日本精品卡一卡2卡三卡| 卡一卡2卡3卡精品网站| a毛片成人免费全部播放| 欧美成人精品第一区二区三区| 国产无遮挡又黄又爽在线观看| 久久久久亚洲AV无码专区首JN| 精品国产欧美一区二区| 国产高跟黑色丝袜在线| 亚州1区2区3区4区产品乱码2021| 里番全彩acg★无翼娜美|