%I #23 Apr 26 2021 08:53:22
%S 1,1,3,5,10,17,33,62,127,267,587,1326,3085,7326,17731,43585,108563,
%T 273544,696113,1787042,4623125,12043071,31565842,83200763,220413272,
%U 586625403,1567930743,4207181144,11329835687,30613313339,82975300030,225552632043,614787508640
%N Number of simple unlabeled graphs on n nodes with exactly 2 connected components that are trees or cycles.
%H Alois P. Heinz, <a href="/A215982/b215982.txt">Table of n, a(n) for n = 2..650</a>
%F a(n) ~ c * d^n / n^(5/2), where d = A051491 = 2.9557652856519949747148..., c = 0.3339525664158379... . - _Vaclav Kotesovec_, Sep 07 2014
%e a(5) = 5: .o-o o. .o-o o. .o-o o. .o o-o. .o o-o.
%e .| | . .| . .|\ . .|\ . .| .
%e .o-o . .o-o . .o o . .o-o . .o-o .
%p with(numtheory):
%p b:= proc(n) option remember; local d, j; `if` (n<=1, n,
%p (add(add(d*b(d), d=divisors(j)) *b(n-j), j=1..n-1))/(n-1))
%p end:
%p g:= proc(n) option remember; local k; `if`(n>2, 1, 0)+ b(n)-
%p (add(b(k)*b(n-k), k=0..n) -`if`(irem(n, 2)=0, b(n/2), 0))/2
%p end:
%p p:= proc(n, i, t) option remember; `if`(n<t, 0, `if`(n=t, 1,
%p `if`(min(i, t)<1, 0, add(binomial(g(i)+j-1, j)*
%p p(n-i*j, i-1, t-j), j=0..min(n/i,t)))))
%p end:
%p a:= n-> p(n, n, 2):
%p seq(a(n), n=2..40);
%t b[n_] := b[n] = If[n <= 1, n, Sum[Sum[d*b[d], {d, Divisors[j]}]*b[n-j], {j, 1, n-1}]/(n-1)]; g[n_] := g[n] = If[n>2, 1, 0]+b[n]-(Sum [b[k]*b[n-k], {k, 0, n}] - If[Mod[n, 2] == 0, b[n/2], 0])/2; p[n_, i_, t_] := p[n, i, t] = If[n<t, 0, If[n == t, 1,If[Min[i, t]<1, 0, Sum[Binomial[g[i]+j-1, j]*p[n-i*j, i-1, t-j], {j, 0, Min[n/i, t]}]]]]; a[n_] := p[n, n, 2] // FullSimplify; Table[a[n], {n, 2, 40}] // Flatten (* _Jean-François Alcover_, Dec 04 2014, translated from Maple *)
%o (Python)
%o from sympy.core.cache import cacheit
%o from sympy import binomial, divisors
%o @cacheit
%o def b(n): return n if n<2 else sum([sum([d*b(d) for d in divisors(j)])*b(n - j) for j in range(1, n)])//(n - 1)
%o @cacheit
%o def g(n): return (1 if n>2 else 0) + b(n) - (sum([b(k)*b(n - k) for k in range(n + 1)]) - (b(n//2) if n%2==0 else 0))//2
%o @cacheit
%o def p(n, i, t): return 0 if n<t else 1 if n==t else 0 if min(i, t)<1 else sum([binomial(g(i) + j - 1, j)*p(n - i*j, i - 1, t - j) for j in range(min(n//i, t) + 1)])
%o def a(n): return p(n, n, 2)
%o print([a(n) for n in range(2, 41)]) # _Indranil Ghosh_, Aug 07 2017
%Y Column k=2 of A215977.
%Y The labeled version is A215852.
%K nonn
%O 2,3
%A _Alois P. Heinz_, Aug 29 2012