Factorial of a Number in JavaScript
Multiply 1 through n. 0! is 1. Negative n is not a number you want here.
BeginnerLoop ProgramsExample 3 of 6
factorial-of-a-number.js
1// Factorial: n! = n × (n-1) × (n-2) × ... × 2 × 12// Example: 5! = 5 × 4 × 3 × 2 × 1 = 12034// Method 1: Using for loop5function factorialLoop(n) {6 if (n < 0) return "Invalid input";7 if (n === 0 || n === 1) return 1;89 let result = 1;10 for (let i = 2; i <= n; i++) {11 result *= i;12 }13 return result;14}1516console.log("5! =", factorialLoop(5));17console.log("0! =", factorialLoop(0));18console.log("10! =", factorialLoop(10));1920// Method 2: Using recursion21function factorialRecursive(n) {22 if (n < 0) return "Invalid input";23 if (n === 0 || n === 1) return 1;24 return n * factorialRecursive(n - 1);25}2627console.log("\nUsing recursion:");28console.log("5! =", factorialRecursive(5));29console.log("7! =", factorialRecursive(7));3031// Method 3: Using while loop32function factorialWhile(n) {33 if (n < 0) return "Invalid input";34 if (n === 0 || n === 1) return 1;3536 let result = 1;37 let i = n;38 while (i > 1) {39 result *= i;40 i--;41 }42 return result;43}4445console.log("\nUsing while:");46console.log("6! =", factorialWhile(6));4748// Method 4: Using reduce49function factorialReduce(n) {50 if (n < 0) return "Invalid input";51 if (n === 0 || n === 1) return 1;5253 return Array.from({length: n}, (_, i) => i + 1)54 .reduce((product, num) => product * num, 1);55}5657console.log("\nUsing reduce:");58console.log("4! =", factorialReduce(4));
Output
5! = 120 0! = 1 10! = 3628800 Using recursion: 5! = 120 7! = 5040 Using while: 6! = 720 Using reduce: 4! = 24
What's going on
Start from 1, multiply up. 5! is 120.
21! already overflows Number. Use BigInt if you actually care. n === 0 returns 1, not 0.