// Magma code for working with number field 38.38.687661045808093482376579225097085116287670624782479569073265850359469722789446885178751177457664.1 // (Note that not all these functions may be available, and some may take a long time to execute.) // Define the number field: R := PolynomialRing(Rationals()); K := NumberField(R![-1101076991, 0, 744125807285, 0, -7629511512714, 0, 31469275400290, 0, -71207905317537, 0, 100459885220950, 0, -94680464008195, 0, 62167403988174, 0, -29202012585177, 0, 9974553348782, 0, -2499589479956, 0, 460944322269, 0, -62411853712, 0, 6157331558, 0, -436357836, 0, 21705622, 0, -730575, 0, 15662, 0, -191, 0, 1]); // Defining polynomial: DefiningPolynomial(K); // Degree over Q: Degree(K); // Signature: Signature(K); // Discriminant: Discriminant(Integers(K)); // Ramified primes: PrimeDivisors(Discriminant(Integers(K))); // Integral basis: IntegralBasis(K); // Class group: ClassGroup(K); // Unit group: UK, f := UnitGroup(K); // Unit rank: UnitRank(K); // Generator for roots of unity: K!f(TU.1) where TU,f is TorsionUnitGroup(K); // Fundamental units: [K!f(g): g in Generators(UK)]; // Regulator: Regulator(K); // Galois group: GaloisGroup(K); // Frobenius cycle types: p := 7; // to obtain a list of $[e_i,f_i]$ for the factorization of the ideal $p\mathcal{O}_K$: idealfactors := Factorization(p*Integers(K)); // get the data [ : primefactor in idealfactors];