# 2803. Factorial Generator

## Description

Write a generator function that takes an integer n as an argument and returns a generator object which yields the factorial sequence.

The factorial sequence is defined by the relation n! = n * (n-1) * (n-2) * ... * 2 * 1​​​.

The factorial of 0 is defined as 1.

Example 1:

Input: n = 5
Output: [1,2,6,24,120]
Explanation:
const gen = factorial(5)
gen.next().value // 1
gen.next().value // 2
gen.next().value // 6
gen.next().value // 24
gen.next().value // 120


Example 2:

Input: n = 2
Output: [1,2]
Explanation:
const gen = factorial(2)
gen.next().value // 1
gen.next().value // 2


Example 3:

Input: n = 0
Output: [1]
Explanation:
const gen = factorial(0)
gen.next().value // 1


Constraints:

• 0 <= n <= 18

## Solutions

• function* factorial(n: number): Generator<number> {
if (n === 0) {
yield 1;
}
let ans = 1;
for (let i = 1; i <= n; ++i) {
ans *= i;
yield ans;
}
}

/**
* const gen = factorial(2);
* gen.next().value; // 1
* gen.next().value; // 2
*/