cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A001617 Genus of modular group Gamma_0(n). Or, genus of modular curve X_0(n).

Original entry on oeis.org

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 2, 2, 1, 0, 2, 1, 2, 2, 3, 2, 1, 3, 3, 3, 1, 2, 4, 3, 3, 3, 5, 3, 4, 3, 5, 4, 3, 1, 2, 5, 5, 4, 4, 5, 5, 5, 6, 5, 7, 4, 7, 5, 3, 5, 9, 5, 7, 7, 9, 6, 5, 5, 8, 5, 8, 7, 11, 6, 7, 4, 9, 7, 11, 7, 10, 9, 9, 7, 11, 7, 10, 9, 11, 9, 9, 7, 7, 9, 7, 8, 15
Offset: 1

Views

Author

Keywords

Comments

Also the dimension of the space of cusp forms of weight two and level n. - Gene Ward Smith, May 23 2006

Examples

			G.f. = x^11 + x^14 + x^15 + x^17 + x^19 + x^20 + x^21 + 2*x^22 + 2*x^23 + ...
		

References

  • B. Schoeneberg, Elliptic Modular Functions, Springer-Verlag, NY, 1974, p. 103.
  • N. J. A. Sloane, A Handbook of Integer Sequences, Academic Press, 1973 (includes this sequence).
  • N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).

Crossrefs

Programs

  • Magma
    a := func< n | n lt 1 select 0 else Dimension( CuspForms( Gamma0(n), 2))>; /* Michael Somos, May 08 2015 */
    
  • Maple
    nu2 := proc (n) # number of elliptic points of order two (A000089) local i, s; if modp(n,4) = 0 then RETURN(0) fi; s := 1; for i in divisors(n) do if isprime(i) and i > 2 then s := s*(1+eval(legendre(-1,i))) fi od; s end:
    nu3 := proc (n) # number of elliptic points of order three (A000086) local d, s; if modp(n,9) = 0 then RETURN(0) fi; s := 1; for d in divisors(n) do if isprime(d) then s := s*(1+eval(legendre(-3,d))) fi od; s end:
    nupara := proc (n) # number of parabolic cusps (A001616) local b, d; b := 0; for d to n do if modp(n,d) = 0 then b := b+eval(phi(gcd(d,n/d))) fi od; b end:
    A001615 := proc(n) local i,j; j := n; for i in divisors(n) do if isprime(i) then j := j*(1+1/i); fi; od; j; end;
    genx := proc (n) # genus of X0(n) (A001617) #1+1/12*psi(n)-1/4*nu2(n)-1/3*nu3(n)-1/2*nupara(n) end: 1+1/12*A001615(n)-1/4*nu2(n)-1/3*nu3(n)-1/2*nupara(n) end: # Gene Ward Smith, May 23 2006
  • Mathematica
    nu2[n_] := Module[{i, s}, If[Mod[n, 4] == 0, Return[0]]; s = 1; Do[ If[ PrimeQ[i] && i > 2, s = s*(1 + JacobiSymbol[-1, i])], {i, Divisors[n]}]; s];
    nu3[n_] := Module[{d, s}, If[Mod[n, 9] == 0, Return[0]]; s = 1; Do[ If[ PrimeQ[d], s = s*(1 + JacobiSymbol[-3, d])], {d, Divisors[n]}]; s];
    nupara[n_] := Module[{b, d}, b = 0; For[d = 1, d <= n, d++, If[ Mod[n, d] == 0, b = b + EulerPhi[ GCD[d, n/d]]]]; b];
    A001615[n_] := Module[{i, j}, j = n; Do[ If[ PrimeQ[i], j = j*(1 + 1/i)], {i, Divisors[n]}]; j];
    genx[n_] := 1 + (1/12)*A001615[n] - (1/4)*nu2[n] - (1/3)*nu3[n] - (1/2)*nupara[n];
    A001617 = Table[ genx[n], {n, 1, 102}] (* Jean-François Alcover, Jan 04 2012, after Gene Ward Smith's Maple program *)
    a[ n_] := If[ n < 1, 0, 1 + Sum[ MoebiusMu[ d]^2 n/d / 12 - EulerPhi[ GCD[ d, n/d]] / 2, {d, Divisors @n}] - Count[(#^2 - # + 1)/n & /@ Range[n], ?IntegerQ]/3 - Count[ (#^2 + 1)/n & /@ Range[n], ?IntegerQ]/4]; (* Michael Somos, May 08 2015 *)
  • PARI
    A000089(n) = {
      if (n%4 == 0 || n%4 == 3, return(0));
      if (n%2 == 0, n \= 2);
      my(f = factor(n), fsz = matsize(f)[1]);
      prod(k = 1, fsz, if (f[k,1] % 4 == 3, 0, 2));
    };
    A000086(n) = {
      if (n%9 == 0 || n%3 == 2, return(0));
      if (n%3 == 0, n \= 3);
      my(f = factor(n), fsz = matsize(f)[1]);
      prod(k = 1, fsz, if (f[k,1] % 3 == 2, 0, 2));
    };
    A001615(n) = {
      my(f = factor(n), fsz = matsize(f)[1],
         g = prod(k=1, fsz, (f[k,1]+1)),
         h = prod(k=1, fsz, f[k,1]));
      return((n*g)\h);
    };
    A001616(n) = {
      my(f = factor(n), fsz = matsize(f)[1]);
      prod(k = 1, fsz, f[k,1]^(f[k,2]\2) + f[k,1]^((f[k,2]-1)\2));
    };
    a(n) = 1 + A001615(n)/12 - A000089(n)/4 - A000086(n)/3 - A001616(n)/2;
    vector(102, n, a(n))  \\ Gheorghe Coserea, May 20 2016

Formula

a(n) = 1 + A001615(n)/12 - A000089(n)/4 - A000086(n)/3 - A001616(n)/2.
From Gheorghe Coserea, May 20 2016: (Start)
limsup a(n) / (n*log(log(n))) = exp(Euler)/(2*Pi^2), where Euler is A001620.
a(n) >= (n-5*sqrt(n)-8)/12, with equality iff n = p^2 for prime p=1 (mod 12) (see A068228).
a(n) < n * exp(Euler)/(2*Pi^2) * (log(log(n)) + 2/log(log(n))) for n>=3 (see Csirik link).
(End)