Article 3S7PY Almost prime generators and almost integers

Almost prime generators and almost integers

by
John
from John D. Cook on (#3S7PY)

Here are two apparently unrelated things you may have seen before. The first is an observation going back to Euler that the polynomial

heegner1.svg

produces a long sequence of primes. Namely, the values are prime for n = 1, 2, 3, ", 40.

The second is that the number

heegner2.svg

is extraordinarily close to an integer. This number is known as Ramanujan's constant. It differs from its nearest integer by 3 parts in 1030. Ramanujan's constant equals

262537412640768743.99999999999925"

There is a connection between these two facts: The polynomial

heegner31.svg

returns primes for n = 1, 2, 3, ", k-1 primes if 4k - 1 is a Heegner number, and

heegner41.svg

is almost an integer if d is a (large) Heegner number.

Source: The Book of Numbers by Conway and Guy.

Heegner numbers

So what's a Heegner number and how many are there? An integer d is a Heegner number if the ring generated by appending a-d to the integers has unique factorization. There are nine such numbers:

1, 2, 3, 7, 11, 19, 43, 67, 163.

There's deeper stuff going on here than I understand-modular forms, the j-function, etc.-so this post won't explain everything. There's something unsatisfying about saying something is "almost" an integer without quantifying. There's a way to be more precise, but we won't go there. Instead, we'll just play with the results.

Mathematica computation

First we look at the claim that n^2 - n + k produces primes for n = 1 through k - 1 if 4k - 1 is a Heegner number. The Heegner numbers of the form 4k + 1 are 2, 3, 5, 11, and 17. The following code shows that the claim is true for these values of k.

k = {2, 3, 5, 11, 17}claim[x_] := AllTrue[ Table[n^2 - n + x, {n, x - 1}], PrimeQ]AllTrue[k, claim]

This returns True, so the claim is true.

As for exp(I ad) being close to an integer, this apparently only true for the last three Heegner numbers.

h = {1, 2, 3, 7, 11, 19, 43, 67, 163}For[i = 1, i < 10, i++, Print[ AccountingForm[ N[ Exp[ Pi Sqrt[ h[[i]] ] ], 31 ] ] ]]

(The function AccountingForm suppresses scientific notation, making it easier to see where the decimal portion of the number starts.)

Here are the results:

 23.1406926327792 85.0196952232072 230.7645883191458 4071.9320952252610 33506.1430655924387 885479.7776801543194 884736743.9997774660349 147197952743.9999986624548262537412640768743.9999999999993

I manually edited the output to align the decimal points and truncate the decimal places beyond that needed to show that the last number is not an integer.

HH1-E-1fG1w
External Content
Source RSS or Atom Feed
Feed Location http://feeds.feedburner.com/TheEndeavour?format=xml
Feed Title John D. Cook
Feed Link https://www.johndcook.com/blog
Reply 0 comments