背景
Ramanujan的电话号码(1729)被称为出租车出租车号码,这是因为(很可能是伪造的)Hardy登上出租车去医院看Ramanujan的传说,这个电话号码对他来说似乎很平淡。
从那以后,它被称为“计程车编号”一类整数中最著名的,它可以以两种(有时是“ k”)不同的方式表示为(正整数的)n个n次幂之和。
1729是可通过2种不同方式表示为2个立方的总和的最小自然数,使其成为第一个“ 3,2”出租车分类号(一般为“ n,k”)。
挑战
给定一个数字,请确定它是否为“ 3,2”“二级出租车编号”-表示它满足与1729(2个唯一的多维数据集)相同的约束,但不必是“ 3”的最小整数,2“类(当然是1729)。
示例案例:
1729 = 10 ^ 3 + 9 ^ 3 = 12 ^ 3 + 1 ^ 3
4104 = 15 ^ 3 + 9 ^ 3 = 16 ^ 3 + 2 ^ 3
13832 = 2 ^ 3 + 24 ^ 3 = 18 ^ 3 + 20 ^ 3
以及20683、32832、39312 ...
计分
这是代码高尔夫球,因此每种语言中最短的答案将获胜。
粗糙的Matlab代码,通过蛮力查找其他情况:
for k = 1729:20000
C = sum(round(mod(real((k-[1:ceil(k^(1/3))].^3).^(1/3)),1)*10000)/10000==1);
if C > 1
D = (mod(C,2)==0)*C/2 + (mod(C,2)==1)*((C+1)/2);
disp([num2str(k),' has ',num2str(D),' solns'])
end
end