A225953 Table for period length of periods of primitive reduced binary quadratic forms with discriminants D(n) = A079896(n).
2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 4, 6, 6, 2, 10, 2, 2, 2, 2, 2, 2, 10, 2, 4, 4, 6, 6, 2, 2, 2, 2, 6, 6, 6, 2, 4, 4, 2, 2, 18, 6, 6, 2, 2, 2, 2, 6, 6, 6, 2, 6, 6, 14, 4, 4, 2, 2, 4, 4, 2, 2, 18, 6, 6, 2, 6, 6, 4, 4, 2, 2, 14, 4, 4, 14, 10, 2, 2, 4, 4, 2, 2, 8, 8, 2
Offset: 1
Examples
The irregular table a(n,k) begins: n/k 1 2 ... D(n) A087048(n) A082174(n) 1: 2 5 1 2 2: 2 8 1 2 3: 2 2 12 2 4 4: 2 13 1 2 5: 6 17 1 6 6: 2 20 1 2 7: 2 2 21 2 4 8: 2 2 24 2 4 9: 4 4 28 2 8 10: 2 29 1 2 11: 2 2 32 2 4 12: 4 4 33 2 8 13: 6 37 1 6 14: 6 2 40 2 8 15: 10 41 1 10 16: 2 2 44 2 4 17: 2 2 45 2 4 18: 2 2 48 2 4 19: 10 52 1 10 20: 2 53 1 2 21: 4 4 56 2 8 ... for rows up to n = 101 see the link. a(1) = 2 because there are 2 = A082174(n) primitive reduced forms with discriminant D = 5, namely [-1, 1, 1] and [1, 1, -1], which are equivalent, and they give 1 = A087048(1) period [[[-1, 1, 1],[1, 1, -1]]] of length 2 = a(1,1). Row n=3 is 2 2, because there are 4 primitive reduced forms for D = 12, appearing in 2 periods, each of length 2: [[[-1, 2, 2], [2, 2, -1]], [[1, 2, -2], [-2, 2, 1]]].
References
- D. A. Buell, Binary quadratic forms, 1989, Springer, especially Ch. 3.
- A. Scholz and B. Schoeneberg, Einführung in die Zahlentheorie, 5. Aufl., de Gruyter, Berlin, New York, 1973, ch. 31, pp. 112 ff.
Links
- Robin Visser, Table of n, a(n) for n = 1..10000
- Wolfdieter Lang, Table for n = 0..100 and more. [Uses the old offset of 0].
- Wolfdieter Lang, Periods of Indefinite Binary Quadratic Forms, Continued Fractions and the Pell +/-4 Equations. [Uses the old offset of 0].
Programs
-
SageMath
def a(n, k): i, D, S = 1, Integer(5), [] while(i < n): D += 1; i += 1*(((D%4) in [0, 1]) and (not D.is_square())) for b in range(1, isqrt(D)+1): if ((D-b^2)%4 != 0): continue for a in Integer((D-b^2)/4).divisors(): if gcd([a, b, (D-b^2)/(4*a)]) > 1: continue Q = BinaryQF(a, b, -(D-b^2)/(4*a)).reduced_form() if all([(not Q.is_equivalent(t)) for t in S]): S.append(Q) P = [len(Q.cycle(proper=True)) for Q in S]; P.sort(reverse=True); return P[k-1] # Robin Visser, Jun 06 2025
Formula
Extensions
Offset corrected by Robin Visser, Jun 02 2025
Comments