"Source: Text/Basics/RngPol.text";
"Line: 1724";
"Date: Fri Sep 26 14:29:19 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Basics/RngPol.text, line: 1724
// Example: H24E7 ()
print "Example: H24E7";
ei := GetEchoInput();
SetEchoInput(true);
P<x> := PolynomialRing(IntegerRing());          
SwinnertonDyerPolynomial(1);
SwinnertonDyerPolynomial(2);
SwinnertonDyerPolynomial(3);
SwinnertonDyerPolynomial(4);
IsIrreducible($1);
assert $1;
for i := 1 to 8 do
   f := SwinnertonDyerPolynomial(i);
   printf "%o:", i;
   for p in [3, 23, 503] do
        L := Factorization(PolynomialRing(GF(p)) ! f);
        printf " %o", {* Degree(t[1])^^t[2]: t in L *};
    end for;
    "";
end for;
sd6 := SwinnertonDyerPolynomial(6);
Degree(sd6);
assert $1 eq 64;
Max([Abs(x): x in Coefficients(sd6)]);
time L := Factorization(sd6);
#L;
assert $1 eq 1;
sd7 := SwinnertonDyerPolynomial(7);
Degree(sd7);
assert $1 eq 128;
Max([Abs(x): x in Coefficients(sd7)]);
time L := Factorization(sd7);
#L;
assert $1 eq 1;
p := sd6*sd7;
Degree(p);
assert $1 eq 192;
Max([Abs(x): x in Coefficients(p)]);    
time L := Factorization(p);
#L;
assert $1 eq 2;
L[1,1] eq sd6;
assert $1;
L[2,1] eq sd7;
assert $1;
SetEchoInput(ei);
