8000 fix: handle squares properly in `isSquareFree` (#228) · TheAlgorithms/TypeScript@650d553 · GitHub
[go: up one dir, main page]

Skip to content

Commit 650d553

Browse files
authored
fix: handle squares properly in isSquareFree (#228)
1 parent 4f6cd6c commit 650d553

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

maths/is_square_free.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export const isSquareFree = (n: number): boolean => {
1414
if (n % 2 === 0) n = n / 2;
1515
if (n % 2 === 0) return false;
1616

17-
for (let i: number = 3; i < Math.sqrt(n); i = i + 2) {
17+
for (let i: number = 3; i <= Math.sqrt(n); i = i + 2) {
1818
if (n % i === 0) {
1919
n = n / i;
2020
if (n % i === 0) return false;

maths/test/is_square_free.test.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import { isSquareFree } from '../is_square_free';
22

33
describe('isSquareFree', () => {
4-
test('should return correct boolean value', () => {
5-
expect(isSquareFree(1)).toBe(true);
6-
expect(isSquareFree(10)).toBe(true);
7-
expect(isSquareFree(20)).toBe(false);
8-
expect(isSquareFree(26)).toBe(true);
9-
expect(isSquareFree(48)).toBe(false);
4+
test.each([1, 2, 3, 5, 7, 10, 26, 2*3, 3*5*7, 11*13*17*19])(
5+
"%i is square free",
6+
(input) => {
7+
expect(isSquareFree(input)).toBe(true);
108
});
11-
});
9+
test.each([20, 48, 2*7*7, 2*3*3, 5*5*7, 2*3*13*13*17, 4*4*4, 2*2, 3*3, 5*5, 100, 0])(
10+
"%i is not square free" 4B4F ,
11+
(input) => {
12+
expect(isSquareFree(input)).toBe(false);
13+
});
14+
});

0 commit comments

Comments
 (0)
0