我正在寻找MaxPower()
使用我的代码使以下函数的最小代码更有效的内存和示例的方法。
用途MaxPower()
:对于整数i
和,返回除以N_remainder
的最大值。m
i^m
N_remainder
MaxPower()
仅在除法时在factorise()
函数中调用i
N_remainder
目前,下面的链接代码对于要分解的数字具有以下结果(以标准形式编写):
- 1x10^8 - 工作正常。产生了两个结果数组并且是正确的
- 5x10^8 - 挂起 Linux 和操作系统完全没有响应。电脑需要硬重启。
- 1x10^9 - 在终端出现内存错误。
在 Linux Mint 17 上使用的 Python 版本是 2.74。
我目前正在学习python。
def MaxPower(i,N_remainder):
m=1
MxP=1
for n in range (2, N_remainder + 1):
b = i**n
a = N_remainder % b
if a==0:
m = m+1
else:
MxP = m
break
return MxP
自最初发布以来的修订代码:
def MaxPower(i,N_remainder):
m=1
MxP=1
for n in xrange (2, N_remainder + 1):
b = pow(i,n)
a = N_remainder % b
if a==0:
m = m+1
else:
MxP = m
break
return MxP
我知道以下内容(自新以来我还没有尝试过,目前已经超出了我的深度);
- 可以在编译的 C 代码中做更多的工作 - 转换为“列表理解”
- 使用线程并确保在使用后删除每个线程。