0
所以我用一些所谓的拉马努金的数字工作。基本上我想要做的功能是这样的:得到错误输出(拉马努金)
- 输入来自用户的数量,并将其保存正
- 函数打印向量的两个条目
(a,b)
,其中a^3+b^3=n
列表。
例如,当I输入n = 443889
,我应该得到的[(76,17),(38,73)]
的输出,因为76^3 + 17^3 = 443889,和38^3 + 73^3 = 443889.
查看我的代码如下,当我输入n=443889
时,我得到这个[(76, 17), (75, 28), (74, 34), (73, 38), (72, 41)]
作为输出,即使这些向量中的一些不是我的方程的解决方案。
def ramanujans(n):
lista = []
counter = 0
for a in range(1,n):
b = (n- (a**3))**(1/3)
result = a**3 + b**3
if isinstance(b,complex):
break
elif result == n:
b = int(round(b))
lista.insert(0,(a, b))
return (lista)
太棒了,谢谢! – armara
出于某种原因,您发布的第二个代码在n = 2000时不起作用。我应该得到输出[(10,10)],因为10^3 + 10^3 = 2000,但是我得到一个空列表。 – armara
我试图改变到'小区(第(n **(1/3))',所以我除去'/ 2'部分,这使得它对于n = 2000,但它也使输出再次被加倍对于n = 1729 – armara