女班长扒开内裤让我们摸视频,麻豆精产国品一二三产区区别免费,鲁一鲁一鲁一鲁一澡,久久国产精品99夜夜嗨,久久午夜无码鲁丝片秋霞

大學(xué)生新聞網(wǎng),大學(xué)生新聞發(fā)布平臺
大學(xué)生新聞網(wǎng)
大學(xué)生新聞大學(xué)生活校園文學(xué)大學(xué)生村官
社會實(shí)踐活動社會實(shí)踐經(jīng)歷社會實(shí)踐報告社會實(shí)踐總結(jié)社會實(shí)踐心得
全國排名校友會版軟科排名分類排名本科排名一本排名二本排名?婆琶學(xué)校地址
求職簡歷職場法則面試技巧職場故事求職招聘大學(xué)生就業(yè)
英語學(xué)習(xí)計算機(jī)學(xué)習(xí)電氣工程機(jī)械工程經(jīng)濟(jì)管理建筑設(shè)計財務(wù)會計
申請書證明書檢討書自薦信演講稿心得體會調(diào)查報告讀后感求職信推薦信其它范文

C語言求完數(shù)(完全數(shù))

問題描述
求某一范圍內(nèi)完數(shù)的個數(shù)。

如果一個數(shù)等于它的因子之和,則稱該數(shù)為“完數(shù)”(或“完全數(shù)”)。例如,6的因子為1、2、3,而 6=1+2+3,因此6是“完數(shù)”。

問題分析
根據(jù)完數(shù)的定義,解決本題的關(guān)鍵是計算出所選取的整數(shù)i(i的取值范圍不固定)的因子(因子就是所有可以整除這個數(shù)的數(shù)),將各因子累加到變量s (記錄所有因子之和),若s等于i,則可確認(rèn)i為完數(shù),反之則不是完數(shù)。
算法設(shè)計
對于這類求某一范圍(由于本題范圍不固定,在編程過程中采用鍵盤輸入的方式)內(nèi)滿足條件的數(shù)時,一般釆用遍歷的方式,對給定范圍內(nèi)的數(shù)值一個一個地去判斷是否滿足條件,這一過程可利用循環(huán)來實(shí)現(xiàn)。

本題的關(guān)鍵是求出選取數(shù)值i的因子,即從1到i-1范圍內(nèi)能整除i的數(shù),看某一個數(shù)j是否為i的因子,可利用語句if(i%j==0)進(jìn)行判斷,求某一個數(shù)的所有因子,需要在1到i-1范圍內(nèi)進(jìn)行遍歷,同樣釆用循環(huán)實(shí)現(xiàn)。因此,本題從整體上看可利用兩層循環(huán)來實(shí)現(xiàn)。外層循環(huán)控制該數(shù)的范圍2〜n;內(nèi)層循環(huán)j控制除數(shù)的范圍為1〜i,通過i對j取余,是否等于0,找到該數(shù)的各個因子。

另外應(yīng)注意每次判斷下一個選定數(shù)之前,必須將變量s的值重新置為0,編程過程中一定要注意變量s重新置0的位置。

程序流程圖:

下面是完整的代碼:

#include<stdio.h>
int main()
{
    int i, j, s, n;  /*變量i控制選定數(shù)范圍,j控制除數(shù)范圍,s記錄累加因子之和*/
    printf("請輸入所選范圍上限:");
    scanf("%d", &n);  /* n的值由鍵盤輸入*/
    for( i=2; i<=n; i++ )
    {
        s=0;  /*保證每次循環(huán)時s的初值為0*/
        for( j=1; j<i; j++ )
        {
            if(i%j == 0)  /*判斷j是否為i的因子*/
                s += j;
        }
        if(s == i)  /*判斷因子這和是否和原數(shù)相等*/
            printf("It's a perfect number:%d\n", i);
    }
    return 0;
}
運(yùn)行結(jié)果:

請輸入所選范圍上限: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
知識點(diǎn)補(bǔ)充
上述程序中求某數(shù)的因子時,釆用從1到i-1范圍內(nèi)進(jìn)行遍歷的方法,一個數(shù)一個數(shù)地去試。這種方法可以做到?jīng)]有遺漏,但是效率不高。

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

#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>
    作者:大學(xué)生新聞網(wǎng)    來源:大學(xué)生新聞網(wǎng)
    發(fā)布時間:2025-03-11    閱讀:
    掃一掃 分享悅讀
  • C語言求親密數(shù)
  • C語言求親密數(shù)
  • 如果整數(shù)A的全部因子(包括1,不包括A本身)之和等于B;且整數(shù)B的全部因子(包括1,不包括B本身)之和等于A
  • 03-11 關(guān)注:0
  • C語言求完數(shù)(完全數(shù))
  • C語言求完數(shù)(完全數(shù))
  • 如果一個數(shù)等于它的因子之和,則稱該數(shù)為“完數(shù)”(或“完全數(shù)”)。例如,6的因子為1、2、3,而 6=1+2+3,因此6是“完數(shù)”。
  • 03-11 關(guān)注:1
  • C語言輸出菱形(詳解版)
  • C語言判斷素數(shù)(求素數(shù))(兩種方法)
  • 素數(shù)又稱質(zhì)數(shù)。所謂素數(shù)是指除了 1 和它本身以外,不能被任何整數(shù)整除的數(shù),例如17就是素數(shù),因?yàn)樗荒鼙?2~16 的任一整數(shù)整除。
  • 03-11 關(guān)注:2
  • C語言楊輝三角(兩種方法)
  • 楊輝三角是我們從初中就知道的,現(xiàn)在,讓我們用C語言將它在計算機(jī)上顯示出來。
  • 03-10 關(guān)注:5