Efficient Computation of the Möbius Function

  • Thread starter Thread starter CRGreathouse
  • Start date Start date
  • Tags Tags
    Computing Function
Click For Summary
The discussion focuses on the efficient computation of the Möbius function, particularly through the use of the SquareFreeQ[n] function, which determines if a number n has a square prime factor by checking the result of MoebiusMu[n]. It highlights that if n has a small prime factor (≤ 1223), the computation is quick, while larger factors require more intensive methods like FactorInteger. The participants explore the complexity of finding mu(n), noting that existing algorithms may be superpolynomial or unproven in complexity. They suggest that factoring n is generally the fastest method for computing mu(n), except in specific cases where small prime factors are involved. The conversation emphasizes the potential for faster algorithms, particularly in distinguishing between numbers based on their prime factors.
CRGreathouse
Science Advisor
Homework Helper
Messages
2,832
Reaction score
0
From the http://documents.wolfram.com/v5/Add-onsLinks/StandardPackages/NumberTheory/NumberTheoryFunctions.html :
SquareFreeQ[n] checks to see if n has a square prime factor. This is done by computing MoebiusMu[n] and seeing if the result is zero; if it is, then n is not squarefree, otherwise it is. Computing MoebiusMu[n] involves finding the smallest prime factor q of n. If n has a small prime factor (less than or equal to 1223), this is very fast. Otherwise, FactorInteger is used to find q.

How does this work? I can't think of a way to compute mu(n) faster than:
* finding a small p for which p^2 | n, or
* finding that n is prime, or
* checking that for all p < (n)^(1/3), p^2 does not divide n
* factoring n, which can be faster than the third option for large nEdit: I checked my copy of "Open problems in number theoretic complexity, II", which has O8: Is SQUAREFREES in P? Assuming that this is still open, any algorithm known would either be superpolynomial or of unproven complexity. But even an exponential-time improvement on the naive algorithm would be of interest.
 
Last edited by a moderator:
Physics news on Phys.org
The interesting line, to me, is this:
If n has a small prime factor (less than or equal to 1223), this is very fast.

This seems a fairly strong claim. In particular, it would mean that the "very fast" algorithm could distinguish between n = 2pq and n = 2pq^2 for large p and q.

I saw a reference to this at http://www.marmet.org/louis/sqfgap/ :
A faster algorithm is used by "Mathematica" to determine if a number is square-free. The method is quite interesting (see: http://documents.wolfram.com/v5/Add-onsLinks/StandardPackages/NumberTheory/NumberTheoryFunctions.html )
 
Last edited by a moderator:
The implication cannot be true, because it would mean that if N doesn't have a small factor, that we could compute \mu(N) = -\mu(3N), where the latter can be done rapidly.
 
Yeah, I figured as much, thanks.

So factoring n is pretty much the fastest way to find mu(n), right? Except in the special cases I outlined above?
 
Thread 'How to define a vector field?'
Hello! In one book I saw that function ##V## of 3 variables ##V_x, V_y, V_z## (vector field in 3D) can be decomposed in a Taylor series without higher-order terms (partial derivative of second power and higher) at point ##(0,0,0)## such way: I think so: higher-order terms can be neglected because partial derivative of second power and higher are equal to 0. Is this true? And how to define vector field correctly for this case? (In the book I found nothing and my attempt was wrong...

Similar threads

  • · Replies 6 ·
Replies
6
Views
4K
Replies
5
Views
4K
Replies
29
Views
5K
  • · Replies 5 ·
Replies
5
Views
5K
  • · Replies 175 ·
6
Replies
175
Views
26K
  • · Replies 82 ·
3
Replies
82
Views
15K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 6 ·
Replies
6
Views
5K