例題5 7 醜數

2021-09-10 13:59:11 字數 679 閱讀 6979

【描述】

醜數是指不能被2,3,5以外的其他素數整除的數。把醜數從小到大排列起來,結果如

下:1,2,3,4,5,6,8,9,10,12,15,…

求第1500個醜數。

【思路】

從小到大依次生成。

最基礎的醜數是1,而後的所有醜數都是在這個基礎上生成的。

如果按照正向思維分析,需要考慮除2,3,5以外的所有素數–這顯然不切實際。

因此考慮派生的性質:假設乙個醜數為x,那麼2x,3x,5x也都是醜數。

這樣,就可以使用乙個優先佇列儲存所有已經生成的醜數,每次取出最小的醜數,以使密集生成三個新的醜數。

【**】

//醜數,2x,3x,5x

#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int coeff[3] = ;

int main()

for (int j = 0;j < 3;j++)

}} return 0;

}

例題5 7 醜數 UVa136

演算法 競賽入門經典 第2版 第5章c 與stl入門 例 題5 7 醜數 uva136 感悟。菜題乙個。2 基本思路,能被2整除,一直除2 能被3整除,一直除3 能被5整除,一直除5 最後值為1,則為醜數。3 編好提交 limit exceeded,菜題不菜,感受到競賽題的威力。4 用printf ...

leetcode 263 醜數(醜數II)

給了我們乙個醜數的概念,真是為了考驗我們什麼手段都能使出來。首先說一下第乙個題目,判斷乙個數是不是醜數,就是不斷地去除5 除3 除2就行了,當然除之前看看餘數是不是0,否則的話說明已經不能被這三個數整除了,直接結束 public boolean isugly int num return flag ...

刷題 醜數提取及醜數判斷

把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。根據醜數的定義,我們知道醜數一定是由2 3 5乘積得到,可表示成如下公式 我們預設1是第乙個醜數,初始醜數序列為1,從1開...