FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
JavaScript/Maths/MobiusFunction.js at master · TheAlgorithms/JavaScript · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
TheAlgorithms
/
JavaScript
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
5.8k
Star
34.2k
Code
Issues
21
Pull requests
192
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
JavaScript
/
Maths
/
MobiusFunction.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
33 lines (31 loc) · 1.24 KB
Breadcrumbs
JavaScript
/
Maths
/
MobiusFunction.js
Copy path
File metadata and controls
33 lines (31 loc) · 1.24 KB
Raw
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
}
Back
|
FazBrowse Home
|
New Git URL