P-Adic square roots: Difference between revisions

Content added Content deleted
Line 622: Line 622:
while dot(a1, a1) > dot(a2, a2)
while dot(a1, a1) > dot(a2, a2)
q = dot(a1, a2) // dot(a2, a2)
q = dot(a1, a2) // dot(a2, a2)
a1, a2 = a2, a1 - BigInt(round(q)) * a2
a1, a2 = a2, a1 - round(q) * a2
end
end
if dot(a1, a1) < N
if dot(a1, a1) < N
Line 654: Line 654:
for (num1, den1, P, K) in DATA
for (num1, den1, P, K) in DATA
Qp = PadicField(P, K)
Qp = PadicField(P, K)
a = Qp(QQ(big(num1) // big(den1)))
a = Qp(QQ(num1 // den1))
c = sqrt(a)
c = sqrt(a)
r = toRational(c * c)
r = toRational(c * c)