No of Factors of n ! | Sieve of Eratosthenes to mark all prime number in array prime as 1 ; Initialize all numbers as prime ; Mark composites ; Returns the highest exponent of p in n ! ; Returns the no of factors in n ! ; ans stores the no of factors in n ! ; Find all primes upto n ; Multiply exponent ( of primes ) added with 1 ; if p is a prime then p is also a prime factor of n ! ; Driver code
function sieve ( n , prime ) { for ( let i = 1 ; i <= n ; i ++ ) prime [ i ] = 1 ; prime [ 1 ] = 0 ; for ( let i = 2 ; i * i <= n ; i ++ ) { if ( prime [ i ] == 1 ) { for ( let j = i * i ; j <= n ; j += i ) prime [ j ] = 0 ; } } } function expFactor ( n , p ) { let x = p ; let exponent = 0 ; while ( ( n / x ) > 0 ) { exponent += Math . floor ( n / x ) ; x *= p ; } return exponent ; } function countFactors ( n ) { let ans = 1 ; let prime = new Array ( n + 1 ) ; for ( let i = 0 ; i < n + 1 ; i ++ ) { prime [ i ] = 0 ; } sieve ( n , prime ) ; for ( let p = 1 ; p <= n ; p ++ ) { if ( prime [ p ] == 1 ) ans *= ( expFactor ( n , p ) + 1 ) ; } return ans ; } let n = 16 ; document . write ( " " + n + " " + countFactors ( n ) ) ;