On Fri, Jul 13, 2018 at 10:10:00AM +0200, Jeroen Demeyer wrote:
> On 2018-07-12 20:11, Steven D'Aprano wrote:
> >about 4.7 seconds to test 2**800 + 1;
>
> In SageMath:
>
> sage: n = 2**800+1; timeit('is_prime(n)')
> 625 loops, best of 3: 303 µs per loop
>
> That's 4 orders of magnitude faster...
Go on, rub it in why don't you...
I'm pretty sure that Sage is using numpy, which would almost certainly
have a C-based implementation, not pure Python like mine. And it's
probably making far less conservative choices about the rate of false
positives it is willing to accept.
And your computer is probably newer and faster than mine :-(
My point was that for casual use, even the bad cases are still fast
enough for interactive use. If you think 5 seconds is ridiculously slow,
you've never tried a naive trial division algorithm that took literally
days to crawl through the millions of divisions needed.
*wink*
--
Steve
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/