小编mo_*_*att的帖子

将一个数分解为两个幂的和

x 是我的输入。我需要找到 i,j>=0 和 n,m>1 例如x = i**m+j**n

现在我一直在这样做,但速度很慢!我该如何改进它?

from math import sqrt
import numpy as np

def check(x):
    for i in range(1,int(np.ceil(sqrt(x)))):
        for j in range(1,int(np.ceil(sqrt(x)))):
            for m in range(2,x/2+1):
                for n in range(2,x/2+1):
                    if((pow(i,m) +pow(j,n))==x):
                        print 'Yes';
                        return ;
    print 'No';
Run Code Online (Sandbox Code Playgroud)

谢谢 !

python algorithm math optimization

5
推荐指数
1
解决办法
1590
查看次数

标签 统计

algorithm ×1

math ×1

optimization ×1

python ×1