求正整數2和n之間的完全數 改進演算法

2021-10-06 06:56:23 字數 950 閱讀 5629

亂七八糟的羊-描述

求正整數2和n(n≤30000)之間的所有完全數,一行輸出乙個。

所謂完全數:因子之和等於它本身的自然數,如6=1+2+3,注意因子包括1但不包括自身。

格式輸入格式

輸入n。

輸出格式

一行乙個數,按由小到大的順序。

樣例輸入樣例

7
輸出樣例

6
限制

時間限制:1000 ms

記憶體限制:65536 kb

描述求正整數2和n(n≤30000)之間的所有完全數,一行輸出乙個。

所謂完全數:因子之和等於它本身的自然數,如6=1+2+3,注意因子包括1但不包括自身。

格式輸入格式

輸入n。

輸出格式

一行乙個數,按由小到大的順序。

樣例輸入樣例

7
輸出樣例

6
限制

時間限制:1000 ms

記憶體限制:65536 kb

/*思路:28=[(1*28),(2*14),(4*7),(7*4)開始重複了(left,right)] 

令從left=1開始增加,餘數為0則找到了2個因子,取為lefht和right;

可以發現只要右邊大於左邊那就開始重複了,結束迴圈,否則繼續迴圈。*/

#includeint iscomplete(int val)

left++;

}return 1?sum == val:0; //或者直接 return sum == val; 

}int main()

求正整數n所有可能的和式的組合

求正整數n所有可能的和式的組合 如 4 1 1 1 1 1 1 2 1 3 2 1 1 2 2 首先說一下,群裡面很多人在問這個東東怎麼去列印,當然如果是只求組合個數的話,他就是乙個完全揹包的問題,如果要列印的話,那還真的費一番功夫。我們可以將這題想為乙個找零錢問題,以前找零錢問題是,我們有1元 2...

求正整數n所有可能的和式的組合

題目 給定乙個數字n,求解出所有和為n的整數組合,要求組合按照遞增方式展示,而且唯一。分析 最初看到這個題,沒有什麼特別好的思路,後來看了下別人的帖子,其實問題也沒那麼難,採用遞迴的方式進行求解,比如我們需要計算和為4的所有組合,我們首先將小於等於4的所有數字列出來 1,2,3,4 首先選取第乙個數...

求正整數n所有可能的和式的組合

問題背景 求正整數n所有可能的和式的組合 如 4 1 1 1 1 1 1 2 1 3 2 1 1 2 2 對於這個題目有兩種理解了 一 如果將1 1 2和2 1 1當成不同的序列的話,這個問題會相對容易些。拿n 4這個例子,首先最長的組合肯定是4 1 1 1 1,那麼最短的組合是4 4,到最後可能會...