Yes, the case `gcd(a, p**n) = p**r, r < n` starts after line 378 right? After line 372, we are concerned with the case `p**n` divides `a`? But the comment at line 372 refers to the case which starts after 378. Have I misunderstood the thing completely?