sage: K = CyclotomicField(23) sage: def ef(q): ....: # takes a prime ideal q and returns the ramification and inertia indices of q ....: # over the prime ideal p of the base ring lying under q ....: return q.ramification_index(), q.residue_class_degree() ....: sage: ef(K.factor(23)[0][0]) (22, 1) sage: ef(K.factor(2)[0][0]) (1, 11) sage: ef(K.factor(2)[1][0]) (1, 11) sage: def splitp(K, p): ....: # lists the prime factors of p O_K with their e and f ....: return [(x[0], x[0].ramification_index(), x[0].residue_class_degree()) for x in K.factor(p)] ....: sage: splitp(K, 23) [(Fractional ideal (23, zeta23 - 1), 22, 1)] sage: splitp(K, 2) [(Fractional ideal (2, zeta23^11 + zeta23^9 + zeta23^7 + zeta23^6 + zeta23^5 + zeta23 + 1), 1, 11), (Fractional ideal (2, zeta23^11 + zeta23^10 + zeta23^6 + zeta23^5 + zeta23^4 + zeta23^2 + 1), 1, 11)] sage: splitp(K, 3) [(Fractional ideal (3, zeta23^11 - zeta23^8 - zeta23^6 + zeta23^4 + zeta23^3 - zeta23^2 - zeta23 - 1), 1, 11), (Fractional ideal (3, zeta23^11 + zeta23^10 + zeta23^9 - zeta23^8 - zeta23^7 + zeta23^5 + zeta23^3 - 1), 1, 11)] sage: splitp(K, 5) [(Fractional ideal (5), 1, 22)] sage: splitp(K, 47) [(Fractional ideal (47, zeta23 + 10), 1, 1), (Fractional ideal (47, zeta23 + 11), 1, 1), (Fractional ideal (47, zeta23 + 13), 1, 1), (Fractional ideal (47, zeta23 + 15), 1, 1), (Fractional ideal (47, zeta23 + 19), 1, 1), (Fractional ideal (47, zeta23 + 20), 1, 1), (Fractional ideal (47, zeta23 + 22), 1, 1), (Fractional ideal (47, zeta23 + 23), 1, 1), (Fractional ideal (47, zeta23 - 21), 1, 1), (Fractional ideal (47, zeta23 - 18), 1, 1), (Fractional ideal (47, zeta23 - 17), 1, 1), (Fractional ideal (47, zeta23 - 16), 1, 1), (Fractional ideal (47, zeta23 - 14), 1, 1), (Fractional ideal (47, zeta23 - 12), 1, 1), (Fractional ideal (47, zeta23 - 9), 1, 1), (Fractional ideal (47, zeta23 - 8), 1, 1), (Fractional ideal (47, zeta23 - 7), 1, 1), (Fractional ideal (47, zeta23 - 6), 1, 1), (Fractional ideal (47, zeta23 - 4), 1, 1), (Fractional ideal (47, zeta23 - 3), 1, 1), (Fractional ideal (47, zeta23 - 2), 1, 1), (Fractional ideal (47, zeta23 + 5), 1, 1)] sage: splitp(QQ[2^(1/3)], 2) [(Fractional ideal (a), 3, 1)] sage: splitp(QQ[2^(1/3)], 3) [(Fractional ideal (a + 1), 3, 1)] sage: splitp(QQ[2^(1/3)], 5) [(Fractional ideal (a^2 - 2*a - 1), 1, 2), (Fractional ideal (-a^2 - 1), 1, 1)] sage: