File tree 1 file changed +10
-7
lines changed
1 file changed +10
-7
lines changed Original file line number Diff line number Diff line change 18
18
* @param {Integer } number
19
19
* @returns {Integer }
20
20
*/
21
-
22
21
import { PrimeFactors } from './PrimeFactors.js'
22
+
23
23
export const mobiusFunction = ( number ) => {
24
- const primeFactorsArray = PrimeFactors ( number )
25
24
if ( number <= 0 ) {
26
25
throw new Error ( 'Number must be greater than zero.' )
27
26
}
28
- return primeFactorsArray . length !== new Set ( primeFactorsArray ) . size
29
- ? 0
30
- : primeFactorsArray . length % 2 === 0
31
- ? 1
32
- : - 1
27
+
28
+ const primeFactorsArray = PrimeFactors ( number )
29
+ const uniquePrimeFactors = new Set ( primeFactorsArray )
30
+
31
+ // If there are duplicate factors, it means number is not square-free.
32
+ if ( primeFactorsArray . length !== uniquePrimeFactors . size ) {
33
+ return 0
34
+ }
35
+ return uniquePrimeFactors . size % 2 === 0 ? 1 : - 1
33
36
}
You can’t perform that action at this time.
0 commit comments