完美數的演算法設計(C語言)

2021-09-07 14:11:47 字數 717 閱讀 5452

完全數(perfect number),又稱完美數或完備數,是一些特殊的自然數。它所有的真因子(即除了自身以外的約數)的和(即因子函式),恰好等於它本身。如果乙個數恰好等於它的因子之和,則稱該數為「完全數」。

尋找完美的數

題目描述:所謂完美的數是這個數除了它自身之外,所有因子的和等於該數。

例如: 28,其因子包括:1,2,4,7,14,28,除了28之外,1+2+4+7+14 = 28

再例如:6,其因子包括:1,2,3,6 除了6之外,1+2+3 = 6

尋找 1~10000之間的完美的數。

法一程式**如下:

#includeint fun_perfect(int number)

return sum==number;

}int main()

return 0;

}

很明顯,此法較為暴力,當搜尋範圍較小時,執行的效率可以被接受,但倘若所搜尋的範圍高達十幾萬,此法執行效率較低需十幾秒。

法二:優化暴力搜尋程式**如下:

#include#includeint fun_perfect(int number)

; for(int i=0;i<5;i++) }

return 0;

}

C 實現求解完美數演算法

1.問題 如果有一數n 其真因數 proper factor 的總和等於n 則稱之為完美數 perfect number 例如以下幾個數都是完美數 6 1 2 3 28 1 2 4 7 14 496 1 2 4 8 16 31 62 124 248 程式基本上不難,第一眼看到時會想到使用迴圈求出所有...

C語言 完美代價

回文串,是一種特殊的字串,它從左往右讀和從右往左讀是一樣的。現 在給你乙個串,它不一定是回文的,請你計算最少的交換次數使得該串變成一 個完美的回文串。例如 mamad字串 交換md madam 回文!完美!include include include intpanduan char s void ...

c語言峰值演算法 C語言 回文數程式演算法

觀察數字 12321,123321 都有乙個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做回文數字。本題要求你找到一些5位或6位的十進位制數字。滿足如下要求 該數字的各個數字之和等於輸入的整數。輸入格式 乙個正整數 n 10 輸出格式 若干行,每行包含乙個滿足要求的5位或6位整...