|

楼主 |
发表于 2009-6-17 13:30
|
显示全部楼层
幂模算法
我写了一个递归的
phython的
phython我不熟,
但是又懒得用C语言写,手头没有大数算法库,写有点郁闷.
matlab其实也可,但此时没有.
awk又不支持这么大的数
#!/usr/bin/env python
import random
def modexp(x,y,N):
if y==0:
return 1
z=modexp(x,y/2,N)
if y&1==0:
return (z*z)%N
else:
return (x*z*z)%N
def fermat(candid):
if modexp(2,candid-1,candid)==1:
print "fermat passed: ",candid
return 1
else:
return 0
k=0
s=0
print modexp(911,45646487979878974564446465465464646461313415464647989789652379,45646487979878974564446465465464646461313415464647989789652379);
print 2**10000
while k<10000:
r=random.randint(2**510,2**512-1)
x=fermat(r)
s=s+x
k=k+1
if x==1:
print "k=",k
|
|