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