Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
33 lines (31 loc) · 1.24 KB

File metadata and controls

33 lines (31 loc) · 1.24 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
* Author: Akshay Dubey (https://github.com/itsAkshayDubey)
* Mobius Function: https://en.wikipedia.org/wiki/M%C3%B6bius_function
* For any positive integer n, define μ(n) as the sum of the primitive nth roots of unity.
* It has values in {−1, 0, 1} depending on the factorization of n into prime factors:
* μ(n) = +1 if n is a square-free positive integer with an even number of prime factors.
* μ(n) = −1 if n is a square-free positive integer with an odd number of prime factors.
* μ(n) = 0 if n has a squared prime factor.
*/
/**
* @function mobiusFunction
* @description -> This method returns μ(n) of given number n
* returns 1 when number is less than or equals 1
* or number has even number of prime factors
* returns 0 when number has repeated prime factor
* returns -1 when number has odd number of prime factors
* @param {Integer} number
* @returns {Integer}
*/
import { PrimeFactors } from './PrimeFactors.js'
export const mobiusFunction = (number) => {
const primeFactorsArray = PrimeFactors(number)
if (number <= 0) {
throw new Error('Number must be greater than zero.')
}
return primeFactorsArray.length !== new Set(primeFactorsArray).size
? 0
: primeFactorsArray.length % 2 === 0
? 1
: -1
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.