Re: modular sqrt does not always detect and error on non-prime modulus
[email protected] Tue, 28 Apr 2026 21:03:26 +0200
| Newsgroups | gmane.comp.mathematics.pari.devel |
|---|---|
| Message-ID | <[email protected]> |
On 2026-04-28 10:26, Bill Allombert wrote: > On Tue, Apr 28, 2026 at 08:45:58AM +0200, [email protected] > wrote: >> Seems to be a little bug. >> I found another factor than 3 that worked but not able to reproduce >> now. >> Not all primes of the form 1+k^2 behave wrong as k=6 shows: >> >> ? version >> [2, 17, 3] >> ? sqrt(Mod(-1-2^2,3*5)) >> Mod(5, 15) >> ? sqrt(Mod(-1-2^4,3*17)) >> Mod(17, 51) >> ? sqrt(Mod(-1-10^2,3*101)) >> Mod(101, 303) >> ? sqrt(Mod(-1-2^6,3*37)) >> *** at top-level: sqrt(Mod(-1-2^6,3*37)) >> *** ^---------------------- >> *** sqrt: not a prime number in sqrt [modulus]: 111. > > What is the bug, from your point of view ? > The "?? sqrt" doc states for Intmod that p is a prime. For nearly all nonprimes as modulus an error message is raised. And the behavior for modulus 3*17 is contradictory: ? sqrt(Mod(-1-2^4,3*17)) %1 = Mod(17, 51) ? sqrt(Mod(-1-2^2,3*17)) *** at top-level: sqrt(Mod(-1-2^2,3*17)) *** ^---------------------- *** sqrt: not a prime number in sqrt [modulus]: 51. *** Break loop: type 'break' to go back to GP prompt break> One fix could be that you close the whole in detecting non-prime modulus. The other fix would be to allow sqrt(Mod(a,np)) for nonprimes np. But the error that gets raised normally seems to have a reason. Regards, Hermann.