Files
JavaScript/Maths/Factorial.js
Ephraim Atta-Duncan e112434dee Add tests to Math (#423)
* Add prettier config

* test: add test to check for absolute function

* chore: es5 to es6

* test: add test to check mean function

* test: add test for sum of digit

* test: add test for factorial

* test: add test for fibonnaci

* test: add test for find HCF

* test: add test for lcm

* test: add gridget test

* test: add test for mean square error

* test: add test for modular binary exponentiation

* test: add tests for palindrome

* test: add test for pascals triangle

* test: add tests for polynomial

* test: add tests for prime check

* test: add tests for reverse polish notation

* test: add tests for sieve of eratosthenes

* test: add tests for pi estimation monte carlo method

* chore: move tests to test folder

* chore: fix standardjs errors
2020-10-12 01:17:49 +05:30

51 lines
1.1 KiB
JavaScript

/*
author: PatOnTheBack
license: GPL-3.0 or later
Modified from:
https://github.com/TheAlgorithms/Python/blob/master/maths/factorial_python.py
This script will find the factorial of a number provided by the user.
More about factorials:
https://en.wikipedia.org/wiki/factorial
*/
'use strict'
const calcRange = (num) => {
// Generate a range of numbers from 1 to `num`.
let i = 1
const range = []
while (i <= num) {
range.push(i)
i += 1
}
return range
}
const calcFactorial = (num) => {
let factorial
const range = calcRange(num)
// Check if the number is negative, positive, null, undefined, or zero
if (num < 0) {
return 'Sorry, factorial does not exist for negative numbers.'
}
if (num === null || num === undefined) {
return 'Sorry, factorial does not exist for null or undefined numbers.'
}
if (num === 0) {
return 'The factorial of 0 is 1.'
}
if (num > 0) {
factorial = 1
range.forEach(function (i) {
factorial = factorial * i
})
return `The factorial of ${num} is ${factorial}`
}
}
export { calcFactorial }