Python函数挂起大数

时间:2013-11-20 19:15:42

标签: python

我正在尝试创建一个计算模幂指数MODEXP(a,e,p)的函数。

此功能将mn作为参数,其中p最多为素数2^me2^n a是小于p的随机数。

这是我的代码:

import random
def question_3(m,n):
    list = []
    i = 1
    for i in range(2,2**m):
        flag=True
        for num in list:
            if(i%num==0):
                flag=False
        if flag:
            list.append(i)
            p = choice(list)
            a = randint(1,int(p)-1) 
            e = pow(2,n)
    return pow(a, e, p)

question_3(5,5)

对于超过20的mn,代码开始挂起。我该如何预防?

1 个答案:

答案 0 :(得分:-1)

如果你只想计算
a模数增加到幂e)mod p
 或类似的事情

我强烈推荐你这个wiki article

在这种情况下,最大迭代次数将等于变量e的二进制表示中的位数。