Kevin Buzzard on Fri, 20 Aug 1999 15:28:52 +0100 (bst)

 bnfclgp

```Inspired by Cox' book "Primes of the form x^2+ny^2" I decided to
verify his table of "one class per genus" n (or 'numerus idoneus'
if you'd rather) on p60 using gp. These numbers are the n>0 for
which the 'class group' of primitive positive definite forms
of discriminant -4n is killed by 2. Note that n might not be squarefree
or anything, this is why I put 'class group' in quotes. The point is
that if the class group above is killed by 2 then this has nice consequences
for the corresponding theory of quadratic forms. For example, if n is a
'numerus idoneus' then any odd number m relatively prime to n and properly
represented by the form x^2+ny^2 in a unique way (up to sign) must be prime.
For example, n=1 and 2 are the smallest of these numeri (the class
group is trivial in these cases), and, according to Cox, the largest
numerus idoneus known is 1848. In fact, according to Cox,
Euler used the fact that 18 518 809=197^2+1848*100^2 to
deduce that 18 518 809 was prime, which is pretty cool.

Q1: Cox says that n=1848 is the largest numerus idoneus known,
and that it's a theorem of Chowla that there are only finitely many.
He also says that there can be at most one n>1848 which is a
numerus idoneus. Is this still open? [off topic but never mind]

Q2: for(n=1,1000000,d=-4*n;v=bnfclgp(d)[2];if(v==vector(length(v),i,2),
print(n,":",length(v)),))

is my gp one-liner. Is it possible to switch off the
continual appearance of

***   Warning: not a fundamental discriminant in quadclassunit.

from the output?

Q3 [finally on topic]: the loop above gets stuck at d=-288.

bnfclgp(-288)

seems to enter an infinite loop. Apologies if I've missed a patch
but I'll never get beyond n=1848 at this rate :)

Kevin
```

• Follow-Ups: