(Python)
将numpy导入为np
def残差(a,b,c,d,exp=3):
返回**exp-b**exp-c**exp-d**exp
定义测试(max_n,k=3):
ans=dict()
对于范围内的(maxn):
#打印(a)
对于范围内的b(int(np.ceil((a**k/3)**(1/k)),a):
n3=a**k-b**k
对于范围内的c(int(np.ceil((n3/2)**(1/k)),b):
m3=n3-c**k
如果m3<0:
断裂;
l=整数(np.ceil((m3)**(1/k))
选项=[l,l-1]
对于选项中的d:
res=残差(a,b,c,d,exp=k)
如果res==0:
如果ans.keys()中有:
ans[a].附加((a,b,c,d))
其他:
ans[a]=[(a,b,c,d)]
#打印(“找到:”,(a,b,c,d)
打破
其他:
#打印(“测试:{0},剩余:{1}”。格式((a,b,c,d),res)
如果res>0:
打破
返回ans
定义系列(N):
结果=试验(N)
结果_by_number_of_answers=[]
results_by_number_of_answers.append(结果)
温度=dict()
对于result.keys()中的k:
如果len(结果[k])>=2:
温度[k]=结果[k]
results_by_number_of_answers.append(临时)
i=3
当长度(温度)>0时:
温度=dict()
对于results_by_number_of_answers[-1].keys()中的k:
如果len(results_by_number_of_answers[-1][k])>=i:
温度[k]=结果[k]
如果长度(温度)>0:
results_by_number_of_answers.append(临时)
i+=1
return[结果中a的下一个(iter(a))_by_number_of_answers]
#获取系列元素,直到A_n>1000
A=系列(1000)
打印(A)
(Python)
从itertools导入组合
从集合导入计数器
从症状导入整数
定义icbrt(n):返回integer_ntroot(n,3)[0]
定义缺陷(mmax):
cbs=[i范围内i的i**3(mmax+1)]
cbsset=集合(cbs)
c=计数器(如果cbsset中的总和(c)为组合中的c(cbs,3))
nmax=最大值(c.值())
return[min(icbrt(s)for s in c if c[s]>=n)for n in range(1,nmax+1)]