regular numbers play a special role in Babylonian mathematics. They are also important in music theory (see Limit (music)), and the problem of generating these numbers efficiently has been used as a test problem for functional programming. Smooth numbers have a number of applications to cryptography. While most applications center around cryptanalysis (e.g. the fastest known integer factorization algorithms, for example: General number field sieve algorithm), the VSH hash function is another example of a constructive use of smoothness to obtain a provably secure design. Distribution Let denote the number of y-smooth integers less than or equal to x (the de Bruijn function). If the smoothness bound B is fixed and small, there is a good estimate for : where denotes the number of primes less than or equal to . Otherwise, define the parameter u as u = log x / log y: that is, x = yu. Then, where is the Dickman function. The average size of the smooth part of a number of given size is known as , and it is known to decay much more slowly than . For any k, almost all natural numbers will not be k-smooth. Powersmooth numbers Further, m is called B-powersmooth (or B-ultrafriable) if all prime powers dividing m satisfy: For example, 720 (24 × 32 × 51) is 5-smooth but not 5-powersmooth (because there are several prime powers greater than 5, e.g. and ). It is 16-powersmooth since its greatest prime factor power is 24 = 16. The number is also 17-powersmooth, 18-powersmooth, etc. B-smooth and B-powersmooth numbers have applications in number theory, such as in Pollard's p − 1 algorithm and ECM. Such applications are often said to work with "smooth numbers," with no B specified; this means the numbers involved must be B-powersmooth, for some unspecified small number B. As B increases, the performance of the algorithm or method in question degrades rapidly. For example, the Pohlig–Hellman algorithm for computing discrete logarithms has a running time of O(B1/2)—for groups of B-smooth order. Smooth over a set A Moreover, m is said to be smooth over a set A if there exists a factorization of m where the factors are powers of elements in A. For example, since 12 = 4 × 3, 12 is smooth over the sets A1 = {4, 3}, A2 = {2, 3}, and , however it would not be smooth over the set