Homepage › Solution manuals › David S. Dummit › Abstract Algebra › Exercise 4.5.47 (List of all permissible values of $n_p$ for all primes $p$ dividing $n$)
Exercise 4.5.47 (List of all permissible values of $n_p$ for all primes $p$ dividing $n$)
Write and execute a computer program which
- (i)
- gives each odd number that is not a power of a prime and that has some prime divisor such that is not forced to be for all groups of order by the congruence condition of Sylow’s Theorem, and
- (ii)
- gives for each in (i) the factorization of into prime powers and gives the list of all permissible values of for all primes dividing (i.e., those values not ruled out by part of Sylow’s Theorem).
Answers
I have some difficulties to understand the condition in (i), but I note that for some values of , such as , the two conditions of part of Sylow’s Theorem force for all prime divisors of . We exclude these values, and also the powers of primes.
Program (with a notebook Sagemath)
"""
Input : integer n.
Returns the list of all permissible values of n_p for all prime p dividing n
(not ruled out by part 3 of Sylow’s Theorem).
"""
def sylow(n):
l = []
for p,a in n.factor():
m = n // p^a
divisors = [d for d in range(1, m + 1) if m % d == 0]
possible = [d for d in divisors if d % p == 1]
l.append([p,possible])
return(l)
"""
Test for n = 168.
"""
n = 168
print ’n =’, n,’=’, factor(n)
for p, l in sylow(n):
print ’ ’,p, ’=>’, l
n = 168 = 2^3 * 3 * 7
2 => [1, 3, 7, 21]
3 => [1, 4, 7, 28]
7 => [1, 8]
"""
Input: integer n
returns True if n_p = 1 for all prime p dividing n.
"""
def excluded(n):
test = True
for p, l in sylow(n):
if len(l)>1:
test = False
return(test)
max = 10000
"""
List of odd numbers less than max that are not a power of a prime and that have some prime divisor p such that n_p is not forced to be 1 for all groups of order n by the two conditions part 3 of Sylow’s Theorem
"""
l = [n for n in range(2,max) if n % 2 == 1 and not Integer(n).is_prime_power()
and not excluded(Integer(n))]; len(l)
1714
"""
First values of l.
"""
l[:20]
[21,39,55,57,63,75,93,105,111,117,129,147,155,165,171,183,189,195,201,203]
for n in l:
n = Integer(n)
print ’n =’, n,’=’, factor(n)
for p, lp in sylow(n):
print ’ ’,p, ’=>’, lp
print
WARNING: Output truncated!
n = 21 = 3 * 7
3 => [1, 7]
7 => [1]
n = 39 = 3 * 13
3 => [1, 13]
13 => [1]
n = 55 = 5 * 11
5 => [1, 11]
11 => [1]
n = 57 = 3 * 19
3 => [1, 19]
19 => [1]
n = 63 = 3^2 * 7
3 => [1, 7]
7 => [1]
n = 75 = 3 * 5^2
3 => [1, 25]
5 => [1]
n = 93 = 3 * 31
3 => [1, 31]
31 => [1]
...
n = 9957 = 3 * 3319
3 => [1, 3319]
3319 => [1]
n = 9975 = 3 * 5^2 * 7 * 19
3 => [1, 7, 19, 25, 133, 175, 475, 3325]
5 => [1, 21]
7 => [1, 15, 57]
19 => [1]
n = 9993 = 3 * 3331
3 => [1, 3331]
3331 => [1]
n = 9999 = 3^2 * 11 * 101
3 => [1, 1111]
11 => [1]
101 => [1]
full_output.txt