diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 2f784fb..9516a63 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -19,4 +19,4 @@ jobs: run: npm ci - name: Test - run: npm run test + run: npm run test \ No newline at end of file diff --git a/src/secret.ts b/src/secret.ts index 2a2e1da..3c68548 100644 --- a/src/secret.ts +++ b/src/secret.ts @@ -13,7 +13,7 @@ // 7, 4 -> 3 // All inputs must be >= 1 export function secret_1(_num1: number, _num2: number): number { - return 0; + return _num1 % _num2; } // Implements the following input to output mapping: @@ -23,7 +23,7 @@ export function secret_1(_num1: number, _num2: number): number { // 7, 4 -> 2401 // All inputs must be >= 1 export function secret_2(_num1: number, _num2: number): number { - return 0; + return _num1 ** _num2; } // Implements the following input to output mapping: @@ -33,7 +33,7 @@ export function secret_2(_num1: number, _num2: number): number { // 256 -> 16 // All inputs must be >= 0 export function secret_3(_num1: number): number { - return 0; + return Math.sqrt(_num1); } // Implements the following input to output mapping: @@ -43,7 +43,15 @@ export function secret_3(_num1: number): number { // 7 -> 5040 // All inputs must be >= 0 export function secret_4(_num1: number): number { - return 0; + if (_num1 < 0) { + throw new Error("Factorial is not defined for negative numbers"); + } + + let result = 1; + for (let i = 2; i <= _num1; i++) { + result *= i; + } + return result; } // Implements the following input to output mapping: @@ -53,5 +61,10 @@ export function secret_4(_num1: number): number { // 7 -> 13 // All inputs must be >= 1 export function secret_5(_num1: number): number { - return 0; + let a = 0, + b = 1; + for (let i = 0; i < _num1; i++) { + [a, b] = [b, a + b]; + } + return a; }