3

The set of smallest prime factors of numbers of the form $2^k+1$ and the set of smallest prime factors of numbers of the form $2^k-1$ appear to be nearly disjoint, except for $3$ which appears in both sets.

Let $p(x)$ denote the smallest prime factor of the natural number $x$ . $p(0)=0$ and $p(1)$ is undefined.

I've checked that $\{ p(2^k+1) \mathop| k \ge 1 \}$ and $\{ p(2^k-1) \mathop| k \ge 1 \}$ are disjoint-except-for-$3$ for small values of $k$, up to 30.

I've also picked a few non-3 primes that are in $\{ p(2^k-1) \mathop| k \ge 1 \}$, in particular, $7, 23, 31$ and none of them even divide the first $10^6$ values of $\{ 2^k+1 \mathop| k \ge 1 \}$. Therefore, $7,23,31$ aren't among the smallest factors of that subset of numbers of the form $2^k+1$ .

So, I guess my question(s) is (are)

  • Are $\{ p(2^k-1) | k \ge 1 \} \setminus \{3\} $ and $\{ p(2^k+1) | k \ge 1 \} \setminus \{3\} $ really disjoint?
  • If they are, how do you prove it?
  • If they are disjoint, how are non-3 primes divided between the two groups?

Appendix 0 -- table of small values of $p(2^n-1)$ and $p(2^n+1)$

n     2**n - 1     p(2**n - 1)       2**n + 1     p(2**n + 1)
2            3              3               5              5
3            7              7               9              3
4           15              3              17             17
5           31             31              33              3
6           63              3              65              5
7          127            127             129              3
8          255              3             257            257
9          511              7             513              3
10        1023              3            1025              5

Appendix I -- check first 29 elements are disjoint except for 3 naively.

def p(n):
    if n == 0:
        return 0
    if n == 1:
        return None
    else:
        for i in range(2, n+1):
            if n % i == 0:
                return i
    assert False

def f(x):
    return 2**x - 1

def g(x):
    return 2**x + 1

F = set(p(f(x)) for x in range(2, 30))
G = set(p(g(x)) for x in range(2, 30))

print(F)
print(G)

Appendix II -- check that 7,23,31 do not divide any of the first $10^6$ elements of the form $2^k+1$. (Therefore they are not the smallest factors a fortiori.)

g :: (Num a, Integral a) => a -> a
g x = 2 ^ x + 1

main = putStrLn $ show [(x, g x) | x <- [ 2.. 100000] , or [g x `mod` 7 == 0, g x `mod` 23 == 0, g x `mod` 31 == 0]]
Greg Nisbet
  • 11,657

1 Answers1

3

For any prime $p$ let $k_p$ be the smallest (nonzero) value such that $p | 2^{k_p} -1$. Then the set of values $k$ such that $p|2^k-1$ is just $\{k_p n \ | \ n\in \mathbb{Z}\}$.

Similarly for any prime $p$ let $m_p$ be the smallest value such that $p | 2^{m_p} +1$ if such a value exists. The set of values $m$ such that $p|2^m+1$ is either empty or $\{m_p(2n+1)\ | \ n\in \mathbb{Z}\}$.

Moreover note that if $m_p$ exists then $k_p = 2m_p$.

As a consequence if $p$ is the smallest prime dividing $2^k-1$ for some $k$ then it must also be the smallest prime dividing $2^{k_p}-1$. Since if $q<p$ divided $2^{k_p}-1$ it would also divide $2^k-1$.

Similarly $p$ is the smallest prime dividing $2^m+1$ for some $m$ it must also be the smallest prime dividing $2^{m_p}+1$. Since if $q<p$ divided $2^{m_p}+1$ it would also divide $2^m+1$.

Now if $p$ is the smallest prime dividing $2^k-1$ and the smallest prime dividing $2^m+1$ it must also be the smallest prime dividing $2^{k_p}-1$ and the smallest prime dividing $2^{m_p}+1$. But $k_p = 2m_p$ so $3$ divides $2^{k_p}-1$. Hence $p$ must be 3.

Nate
  • 11,206
  • "If $m_p$ exists then $k_p = 2m_p$". Indeed from the 1st paragraph $k_p|2m_p$ [because $p|2^{2m_p}-1$] but $k_p$ does not divide $m_p$ [because $p$ cannot divide both $2^{m_p}-1$ and $2^{m_p}+1$] ] so $k_p$ must be even. Suppose $k_p < 2m_p$. Then as $p|2^{k_p}-1$ and $k$ is even it follows that $p|2^{k_p/2}+1$ or $p|2^{k_p/2}-1$. But $p$ cannot divide $2^{k_p/2}-1$ by def'n of $k_p$ so $p|2^{k_p/2}+1$. So this implies $m_p \le k_p/2$, which contradicts the assumption $k_p<2m_p$. So indeed $k_p=2m_p$. [I just needed to work this through for myself. Very nice answer!] – Mike Apr 26 '19 at 01:12