Raptor尋找1000以內完數

1.問題描述

    一個數如果恰好等於它的因子之和,這個數就稱爲“完數”。例如,6的因子是1,2,3,而6=1+2+3,因此6是“完數”。找出1000之內的所有完數。

2.思路分析

  1. 首先,本題是尋找1000以內的完數,那麼一定有一個循環變量i從1到1000,然後對於每個循環變量來說都判斷這個i是不是完數

  2. 現在問題是,怎麼判斷這個i是不是完數,作爲簡化主要流程圖的目的,更明顯的展示我們的思路,我們設計一個判斷一個數是不是完數的子程序,主程序如下圖所示:

    主程序

  3. 好了,現在主要的思路清楚了,現在就是子程序的設計,如何判斷完數了。
        對於上面關於完數的定義我們可以發現,我們要判斷輸入的一個數n是不是和n的因子的和相等,那麼怎麼求n的因子呢?同樣的還是遍歷。
        我們定義一個循環變量i,我們發現當i>n2 的時候就不可能是n的因子了,所以循環變量i的範圍是1in2 。同時我們定義一個求和變量sum初始值爲0,每一次遍歷,只要發現n能夠整除i(我們用 n mod i=0來判斷是不是整除),我們就把這個i加上去,因此有sum=sum+i,直到到循環結束。
         等到循環結束了,我們判斷sum和n是否相等,如果相等就令flag=1,不相等就令flag=0。注意,其實這裏用其他的數字表示也可以,但是0-1有很直觀的意義,一般用0和1來分別表示不滿足和滿足。具體子程序如下:

子程序

3.結果展示

結果展示


    以上就是Raptor中尋找1000以內的完數的詳細內容,這篇博客只提供教學(私以爲已經足夠詳細),再不會編程序的話需要程序請聯繫QQ545030769

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章