我正在尝试创建一个程序,用于一个数字的素数分解,这就是我想出的代码
ss=0
i=2
y=n
q=""
while(i<=int((y)**(1/2))):
#checking for prime
t=0
for j in range(2,int(i//2)):
if(i==2):
continue
if(i%j==0):
t=t+1
if(t>0):
i=i+1
continue
else:
if(n==0):
break
else:
if(n%i==0):
n=int(n/i)
ss=ss+1
continue
elif(n%i!=0 and ss>0):
if(ss==1):
q=q+"("+str(i)+")"
else:
q=q+"("+str(i)+"**"+str(ss)+")"
ss=0
i=i+1
continue
else:
i=i+1
continue
return q
该代码在特定的数字范围内运行非常好,但显示了巨大数字上的超时错误。
有什么方法可以提高这些程序的效率,因为我自己已经尝试过了。
密码起作用-
中。
输出的形式为(2 ** 3)(3 ** 2),以此类推。
发布于 2020-01-29 00:02:37
好吧,素因式分解是一个困难的和CPU密集型的问题,所以Python (是一种非常慢的语言)不是一种很好的语言。除此之外,假设您想继续使用python
。
https://stackoverflow.com/questions/59962654
复制