forked from TheAlgorithms/JavaScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIsSquareFree.js
More file actions
23 lines (21 loc) · 792 Bytes
/
IsSquareFree.js
File metadata and controls
23 lines (21 loc) · 792 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
* Author: Akshay Dubey (https://github.com/itsAkshayDubey)
* Square free integer: https://en.wikipedia.org/wiki/Square-free_integer
* function to check if an integer has repeated prime factors.
* return false if the number as repeated prime factors.
* else true
*/
/**
* @function isSquareFree
* @description -> Checking if number is square free using prime factorization
* @param {number} number
* @returns {boolean} true if the number has unique prime factors, otherwise false
*/
import { PrimeFactors } from './PrimeFactors.js'
export const isSquareFree = (number) => {
const primeFactorsArray = PrimeFactors(number)
if (number <= 0) {
throw new Error('Number must be greater than zero.')
}
return primeFactorsArray.length === new Set(primeFactorsArray).size
}