pyarith は素数判定と素因数分解を提供します。
Python 1.5.2 以降。 もし af.py を使うならば、SPARK-0.6.1 (0.5 でも多分動きますが)。
101:~% python1.5
Python 1.5.2 (#6, Jun 5 2000, 01:22:41) [GCC egcs-2.91.66 19990314 (egcs-1.1.2 on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> from alib import *
>>> isprime((10L**17-1)/9)
0
>>> factor((10L**17-1)/9)
starting SQUFOF
(935L,-209177212L,-184315086725L) ->(2071723L,207172300L,-183914857L)
{2071723L: 1, 5363222357L: 1}
>>> isprime((10L**19-1)/9)
1
>>> isprime((10L**23-1)/9)
1
>>> isprime((10L**29-1)/9)
0
>>> factor((10L**29-1)/9)
starting MPQS
3191L
starting MPQS
sieve .. eliminate
56158821194265213707L
starting MPQS
sieve . eliminate
16763L
{3191L: 1, 77843839397L: 1, 43037L: 1, 62003L: 1, 16763L: 1}
>>>
102:~%
101:~% python2.1 ~/bin/python/af.py
isprime((10^17-1)/9)
isprime((10^17-1)/9)
output[1] = 0
factor((10^17-1)/9)
factor((10^17-1)/9)
starting SQUFOF
(935,-209177212,-184315086725) ->(2071723,207172300,-183914857)
output[2] = {2071723L: 1, 5363222357L: 1}
isprime((10^19-1)/9)
isprime((10^19-1)/9)
output[3] = 1
isprime((10^23-1)/9)
isprime((10^23-1)/9)
output[4] = 1
isprime((10^29-1)/9)
isprime((10^29-1)/9)
output[5] = 0
factor((10^29-1)/9)
factor((10^29-1)/9)
starting MPQS
3191
starting MPQS
sieve .. eliminate
56158821194265213707
starting MPQS
sieve . eliminate
16763
output[6] = {3191L: 1, 77843839397L: 1, 43037L: 1, 62003L: 1, 16763L: 1}
quit
quit
102:~%
著作権は私こと Fe2+ にあります。 もちろん、自由に使用して下さい。
© 2001 Fe2+. All right reserved.