光滑數

光滑數（），或译脆数，是一個可以因數分解為小質數乘積的正整數。光滑數一詞是是伦纳德·阿德曼所提出。光滑數在以因數分解為基礎的密码学中扮演重要角色。

定義
若一正整數的質因數均不大於B，此整數即為B-光滑數。例如1620的因數分解為22 × 34 × 5，質因數均不大於5，因此1620是5-光滑數。

10和12的因數分解分別為2 × 5和22 × 3，二者質因數也都不大於5，因此二者均是是5-光滑數，雖然其質因數未包括不大於5的所有質數，但仍然可以是5-光滑數。

5-光滑數常稱為正規數或漢明數（Hamming numbers）。7-光滑數有時會稱為「謙虛數」或「高合成數」，不過後者會和以因數個數來定義的高合成數混淆。

B-光滑數的B不一定要是質數，例如上述舉例的10和12不但是5-光滑數，也是6-光滑數（質因數都不大於6）。一般而言會選擇B為質數的B-光滑數，但B也可以是合數。一正整數為B-光滑數若且唯若正整數為p-光滑數，且p是小於等於B的最大質數。

應用
有些快速傅里叶变换演算法中會用到光滑數，例如库利－图基快速傅里叶变换算法會將問題一直分解為較小的問題，其大小為原問題大小的因數，若原問題大小是B原問題大小，原問題可以分解為許多很小的問題，此情形有有快速的演算法，若大小是較大的質數，就要應用像是Chirp-Z 轉換之類效率較差的演算法。

5-光滑數〈或稱為正規數〉在巴比倫數學中有重要的角色，在音樂理論中也很重要。有一個函數程式語言的問題就是要產生正規數。

密码学中也有應用光滑數。雖然大部份的密码学都會用到密码分析（已知最快的因數分解演算法），但雜湊函數利用光滑數來取得。

分佈
令表示小於等於x的y-光滑數的個數（de Bruijn函數）。

若B為定值且數值很小，可以用下式估計:

 
其中為小於等於的質數個數。

否則，定義參數u= log x / log y：因此，x = yu，則：

其中為。

幂次光滑數

若所有可以整除m的質數幂次 滿足以下方程，則m為B-幂次光滑數：

例如，243251為5-光滑數，但不是5-幂次光滑數。因為其最大的質數幂次為24，該數為16-幂次光滑數，也是17-幂次光滑數，18-幂次光滑數……。

數論中有用到B-光滑數及B-幂次光滑數。例如，這類演算法一般會應用在光滑數中，但不會特別標示光滑數的B是多少。此時的B需是一個較小的整數，若B增加，演算法的效率就會迅速的變差。例如計算離散對數的的時間複雜度是O(B1/2)。

相關條目
粗糙數

高合成數

參考資料

外部連結

 
整數數列線上大全（OEIS）中有包括以下B較小的B-光滑數：
 2-光滑數：A000079 (2i)
 3-光滑數：A003586 (2i3j)
 5-光滑數：A051037 (2i3j5k)
 7-光滑數：A002473 (2i3j5k7l)
 11-光滑數：A051038
 13-光滑數：A080197
 17-光滑數：A080681
 19-光滑數：A080682
 23-光滑數：A080683

解析数论
整数数列