diff --git a/Maths/PerfectSquare.ts b/Maths/PerfectSquare.ts new file mode 100644 index 00000000..d66d4a90 --- /dev/null +++ b/Maths/PerfectSquare.ts @@ -0,0 +1,11 @@ +/** + * @function perfectSquare + * @description the square root of a number should be an integer + * @see [Perfect square](https://www.cuemath.com/algebra/perfect-squares/) + * @example Perfect square - 9, 16, 25 + * @param {num} number + */ + +export const PerfectSquare = (num: number) => { + return Number.isInteger(Math.sqrt(num)); +}; diff --git a/Maths/test/PerfectSquare.test.ts b/Maths/test/PerfectSquare.test.ts new file mode 100644 index 00000000..b11ddedd --- /dev/null +++ b/Maths/test/PerfectSquare.test.ts @@ -0,0 +1,9 @@ +import { PerfectSquare } from "../PerfectSquare"; + +test("Check perfect square", () => { + expect(PerfectSquare(16)).toBe(true); + expect(PerfectSquare(12)).toBe(false); + expect(PerfectSquare(19)).toBe(false); + expect(PerfectSquare(25)).toBe(true); + expect(PerfectSquare(42)).toBe(false); +});