Also not an answer, just a hint on how the GAP code can be made a bit faster, for future reference: GAP actually "knows" the character tables for the alternating groups. For some reason I don't know this is not used here, but we can ask GAP directly for that character table, bypassing all computations in groups, to get a faster computation, like so: ``` LoadPackage("ctbllib"); Phenomenon:=function(n) local ct, irr,r,L,i,j,k; ct:=CharacterTable("Alternating", n); irr:=Irr(ct); r:=Size(irr); for i in [2..r] do for j in [i..r] do if IsIrreducible(irr[i]*irr[j]) then Print([i,j],"\n");; fi; od; od; end;; for n in [5..20] do Print(n,"\n");; Phenomenon(n);; od; ```