// // code for finding the model y^2=f_26(x) for X_0(26) and the factorization of f_26 in Q(√13)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(26)); C; f:=x^6-8*x^5+8*x^4-18*x^3+8*x^2-8*x+1; Factorization(f); Discriminant(f); Factorization(Integers()!Discriminant(f)); K:=PolynomialRing(QuadraticField(13)); Factorization(f, K); // // code for finding the model y^2=f_28(x) for X_0(28) and the factorization of f_28 in Q(√-7)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(28)); C; f:=4*x^6-12*x^5+25*x^4-30*x^3+25*x^2-12*x+4; Factorization(f); // // this is the factorization of the normalized model, so we have to multiply it by 4, which is the leading coefficient of f Discriminant(2*Factorization(f)[1][1]); Factorization(Integers()!Discriminant(2*Factorization(f)[1][1])); Discriminant(Factorization(f)[2][1]); Factorization(Integers()!Discriminant(Factorization(f)[2][1])); Discriminant(2*Factorization(f)[3][1]); Factorization(Integers()!Discriminant(2*Factorization(f)[3][1])); K:=PolynomialRing(QuadraticField(-7)); Factorization(f, K); // // code for finding the model y^2=f_29(x) for X_0(29) and the factorization of f_29 in Q(√29)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(29)); C; f:=x^6-4*x^5-12*x^4+2*x^3+8*x^2+8*x-7; Factorization(f); Discriminant(f); Factorization(Integers()!Discriminant(f)); K:=PolynomialRing(QuadraticField(29)); Factorization(f, K); // // code for finding the model y^2=f_30(x) for X_0(30) and the factorization of f_30 in Q(√5)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(30)); C; f:=x^8+14*x^7+79*x^6+242*x^5+441*x^4+484*x^3+316*x^2+112*x+16; Factorization(f); Discriminant(Factorization(f)[1][1]); Factorization(Integers()!Discriminant(Factorization(f)[1][1])); Discriminant(Factorization(f)[2][1]); Factorization(Integers()!Discriminant(Factorization(f)[2][1])); Discriminant(Factorization(f)[3][1]); Factorization(Integers()!Discriminant(Factorization(f)[3][1])); K:=PolynomialRing(QuadraticField(5)); Factorization(f, K); // // code for finding the model y^2=f_33(x) for X_0(33) and the factorization of f_33 in Q(√-11)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(33)); C; f:=x^8+10*x^6-8*x^5+47*x^4-40*x^3+82*x^2-44*x+33; Factorization(f); Discriminant(Factorization(f)[1][1]); Factorization(Integers()!Discriminant(Factorization(f)[1][1])); Discriminant(Factorization(f)[2][1]); Factorization(Integers()!Discriminant(Factorization(f)[2][1])); K:=PolynomialRing(QuadraticField(-11)); Factorization(f, K); // // code for finding the model y^2=f_35(x) for X_0(35) and the factorization of f_35 in Q(√5)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(35)); C; f:=x^8-4*x^7-6*x^6-4*x^5-9*x^4+4*x^3-6*x^2+4*x+1; Factorization(f); Discriminant(Factorization(f)[1][1]); Factorization(Integers()!Discriminant(Factorization(f)[1][1])); Discriminant(Factorization(f)[2][1]); Factorization(Integers()!Discriminant(Factorization(f)[2][1])); K:=PolynomialRing(QuadraticField(5)); Factorization(f, K); // // code for finding the model y^2=f_39(x) for X_0(39) and the factorization of f_39 in Q(√13)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(39)); C; f:=x^8-6*x^7+3*x^6+12*x^5-23*x^4+12*x^3+3*x^2-6*x+1; Factorization(f); Discriminant(Factorization(f)[1][1]); Factorization(Integers()!Discriminant(Factorization(f)[1][1])); Discriminant(Factorization(f)[2][1]); Factorization(Integers()!Discriminant(Factorization(f)[2][1])); K:=PolynomialRing(QuadraticField(13)); Factorization(f, K); // // code for finding the model y^2=f_40(x) for X_0(40) and the factorization of f_40 in Q(√-1)[X] and Q(√5)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(40)); C; f:=x^8+8*x^6-2*x^4+8*x^2+1; Factorization(f); Discriminant(f); Factorization(Integers()!Discriminant(f)); K:=PolynomialRing(QuadraticField(-1)); Factorization(f, K); K:=PolynomialRing(QuadraticField(5)); Factorization(f, K); // // code for finding the model y^2=f_41(x) for X_0(41) and the factorization of f_41 in Q(√41)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(41)); C; f:=x^8-4*x^7-8*x^6+10*x^5+20*x^4+8*x^3-15*x^2-20*x-8; Factorization(f); Discriminant(f); Factorization(Integers()!Discriminant(f)); K:=PolynomialRing(QuadraticField(41)); Factorization(f, K); // // code for finding the model y^2=f_48(x) for X_0(48) and the factorization of f_48 in Q(√-1)[X] and Q(√3)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(48)); C; f:=x^8+14*x^4+1; Factorization(f); Discriminant(Factorization(f)[1][1]); Factorization(Integers()!Discriminant(Factorization(f)[1][1])); Discriminant(Factorization(f)[2][1]); Factorization(Integers()!Discriminant(Factorization(f)[2][1])); K:=PolynomialRing(QuadraticField(-1)); Factorization(f, K); K:=PolynomialRing(QuadraticField(3)); Factorization(f, K); // // code for finding the model y^2=f_50(x) for X_0(50) and the factorization of f_50 in Q(√5)[X] // _:=PolynomialRing(Rationals()); C:=SimplifiedModel(SmallModularCurve(50)); C; f:=x^6-4*x^5-10*x^3-4*x+1; Factorization(f); Discriminant(f); Factorization(Integers()!Discriminant(f)); K:=PolynomialRing(QuadraticField(5)); Factorization(f, K);